【发布时间】:2018-07-03 11:35:30
【问题描述】:
我觉得这应该不难,但我是 Node.js 的新手(对 JavaScript 的许多方面也是新手)。我正在创建一个 Express 应用程序来返回从多个 API 获取的自行车位置数组;每个 API 都需要经度和纬度作为输入。因此,我将每个 API 调用分解为一个“模块”,并使用 npm 库“async”并行进行每个调用,并使用“axios”发出 API 请求。我可以让它正常工作而无需将其分解为模块,但是一旦我将每个 API 调用分离到它自己的文件中,我就无法弄清楚如何将 lat 和 lng 传递给它。
这是我的 index.js
import async from 'async';
import {mobike} from './mobike.js';
import {spin} from './spin.js';
async.parallel([
mobike, //How or where can I pass these parameters?
spin
],
function(err, results) {
console.log(results);
});
这是我的 mobike.js 模块,例如(为简洁起见,我将省略 spin.js)
import axios from 'axios';
export var mobike = function (lat, lng, callback){
axios.get('https://mwx.mobike.com/mobike-api/rent/nearbyBikesInfo.do', {
params: {
latitude: lat, //35.2286324
longitude: lng //-80.8427562
},
headers: {
'content-type': 'application/x-www-form-urlencoded',
'user-agent': 'Mozilla/5.0'
}
}).then( response => {
callback(null, response.data.object)
}).catch(error => {
callback(error, null)
})
}
当我尝试通过 mobike(如 mobike(1234,1234))传递参数时,它不起作用。如何将 lat 和 lng 参数传递给 mobike.js 文件?
【问题讨论】:
-
您还可以将
async函数转换为返回promise,并将Promise.all用于函数的所有输出以达到相同的结果。 -
谢谢@BrijeshPatel...如果我这样做了,我将不再需要
async.js依赖项,对吧?
标签: javascript node.js express async.js