【发布时间】:2018-01-05 19:09:01
【问题描述】:
所以我一直在尝试使用 Promise.all() 方法,但遇到了一个问题,我需要向该方法传递一组承诺,但我不确定要调用多少承诺应用程序需要/需要。
这是我通过专门构建数组得到的一种方法
router.post('/test1', (req, res, next) => {
console.log('Hit on POST /test1');
let arr = ['email1@email.com','email2@email.com'];
Promise.all([
lookUpUserId(arr[0]),
lookUpUserId(arr[1])
]).then((x)=>{res.send(x)});
});
我的lookUpUserId() 函数正在返回一个承诺,如果我在数组中明确列出它们,我就可以使用它。但是,我尝试了几种动态创建此数组的方法,但似乎无法使其正常工作。
示例 #1
router.post('/test1', (req,res,next) => {
console.log('Hit on POST /test1');
let arr = ['email1@email.com','email2@email.com'];
Promise.all((arr)=>{
let out = [];
for(let i=0; i<arr.length; i++){
out.push(lookUpUserId(arr[i]));
}
return out;
}).then((x)=>{res.send(x)});
});
示例 2
outer.post('/test1', (req,res,next) => {
console.log('Hit on POST /test1');
let arr = ['email1@email.com','email2@email.com'];
let promArr = (arr)=>{
let out = [];
for(let i=0; i<arr.length; i++){
out.push(lookUpUserId(arr[i]));
}
}
Promise.all(promArr).then((x)=>{res.send(x)});
});
【问题讨论】:
-
你创建了一个返回数组的函数,而不是一个数组。
-
我在这里清理了一大堆加热的 cmets。不要继续发布它们。
标签: javascript node.js express promise