节点asynchronous – 工作asynchronous方法在async.parallel内返回undefined

基本上我有一个方法从一个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); }); } 

这是asynchronous调用:

 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); }); 

在你的请求函数中,把你的响应作为callback的第二个参数。 请求使用节点样式的callback,其中第一个参数是一个错误。

  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); }); }