[英]How do I export the result of a promise chain to a separate module?
我想在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
返回 googleMapsClient
从里面getTimeAndDistance
借此让该res.json.routes[0].legs[0]
外getTimeAndDistance
。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.