1
基本上我有一個方法從一個API中獲取值並工作,但在async.parallel中,列出的結果都是未定義的。節點異步 - 工作異步方法返回內部未定義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);
});
Async.js希望您使用節點回調約定,其中第一個參數表示錯誤。你的'getNumberOfSharesFromFacebookApi'函數沒有這樣做。 – Bergi