gpt4 book ai didi

javascript - Node 异步 - 工作异步方法在 async.parallel 内返回未定义

转载 作者:太空宇宙 更新时间:2023-11-04 00:38:02 26 4
gpt4 key购买 nike

基本上,我有一个从 API 获取值的方法并且可以工作,但在 async.parallel 中列出的结果都是未定义的。

方法如下:

function getNumberOfSharesFromFacebookApi(url ,callback) {

request(facebookApiUrl + url + '&format=json', function (error, response, body) {
let res = 0;

if (!error && response.statusCode == 200) {
try {
res = JSON.parse(body)[0]['total_count'];
} catch(err) { }
}
callback(res);
});
}

这是异步调用:

async.parallel ([
callback => {
getNumberOfSharesFromFacebookApi(urlsToTest[0], callback);
},
callback => {
getNumberOfSharesFromFacebookApi(urlsToTest[1], callback);
},
callback => {
getNumberOfSharesFromFacebookApi(urlsToTest[2], callback);
},
callback => {
getNumberOfSharesFromFacebookApi(urlsToTest[3], callback);
}
],
(err, results) => {
console.log(results);
});

最佳答案

在您的请求函数上,将您的响应作为回调的第二个参数。请求使用 Node 样式回调,其中第一个参数是错误。

 function getNumberOfSharesFromFacebookApi(url ,callback) {
request(facebookApiUrl + url + '&format=json', function (error, response, body) {
if(error) return callback(error); //callback on error
let res = 0;

if (!error && response.statusCode == 200) {
try {
res = JSON.parse(body)[0]['total_count'];
} catch(err) { }
}
callback(null, res);
});
}

关于javascript - Node 异步 - 工作异步方法在 async.parallel 内返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38082176/

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