gpt4 book ai didi

node.js - 如何将 promise 链的结果导出到单独的模块?

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:54 25 4
gpt4 key购买 nike

我想在index.js中使用googleApi.js的结果,但在访问index.js中的数据时遇到问题。结果要么是未定义的,要么是一个 promise 对象,具体取决于我尝试过的解决方案。有人可以指出我正确的方向吗?

index.js:

const googleClient = require('./googleApi.js')

let one = '52.4362,4.7291'
let two = '52.2672,5.0813'

const test = async() => {
const result = await googleClient.getTimeAndDistance(one,two)
console.log(result)
}

test()

googleApi.js

const googleMapsClient = require('@google/maps').createClient({
key: 'MY_API_KEY',
Promise: Promise
})

getTimeAndDistance = (origin, destination) => {
googleMapsClient.directions({
origin: origin,
destination: destination,
language: 'en',
units: 'metric',
})
.asPromise()
.then((res) => {
return res.json.routes[0].legs[0]
})
.catch((err) => {
console.log(err)
})
}

module.exports.getTimeAndDistance = getTimeAndDistance

googleApi.js 中的代码有效,我能够将结果记录到控制台,但即使导出函数,我也无法在模块外部访问该数据。

最佳答案

index.js 中,从 getTimeAndDistance 内部返回 googleMapsClient 以使 getTimeAndDistance 外部的 res.json.routes[0].legs[0] 可用。

const googleMapsClient = require('@google/maps').createClient({
key: 'MY_API_KEY',
Promise: Promise
})

getTimeAndDistance = (origin, destination) => {
return googleMapsClient.directions({
//^^^^^
origin: origin,
destination: destination,
language: 'en',
units: 'metric',
})
.asPromise()
.then((res) => {
return res.json.routes[0].legs[0]
})
.catch((err) => {
console.log(err)
})
}

module.exports.getTimeAndDistance = getTimeAndDistance

关于node.js - 如何将 promise 链的结果导出到单独的模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56444062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com