【发布时间】:2018-06-05 15:47:38
【问题描述】:
我正在使用一个名为 request-promise 的库来多次调用 API,以查看类似这样的承诺。
const rp = require('request-promise');
static buildProfileImageObject(personObj) {
var promiseArr = [];
var parsedPersonResponseObj = [];
personObj.searchResult.hits.map(person => {
let options = {
method: 'GET',
uri: `api.com/class/${person.ID}`,
json: true
}
promiseArr.push(rp(options));
});
var resultsObj = null
Promise.all(promiseArr)
.then((results) => {
resultsObj = results
console.log(results)
}).catch(err => {
Utils.log("API Call Error", err)
return Utils.errorResponse();
});
console.log("THIS IS AFTER");
console.log(resultsObj);
return resultsObj;
}
这完美调用了API,并在console.log(results)被命中时显示所有结果。
我的问题是,当调用此函数时,我得到了 null 的返回值,因为它没有等待 Promise.all 完成。返回显示null
如何等待 Promise 完成然后返回这些结果?
【问题讨论】:
-
返回一个承诺,在调用者中使用
.then。 -
嘿@jonrsharpe 你能在下面提供一个样本作为答案吗?谢谢!
标签: javascript ecmascript-6 promise es6-promise