【发布时间】:2017-12-03 19:25:35
【问题描述】:
我正在尝试创建一个 Promise 数组,然后使用 Promise.all() 解决它们。我正在使用 got,它返回一个承诺。
我的代码可以工作,但我不完全理解如何工作。这里是:
const got = require('got');
const url = 'myUrl';
const params = ['param1', 'param2', 'param3'];
let promiseArray = [];
for (param of params) {
promiseArray.push(got(url + param));
}
// Inspect the promises
for (promise of promiseArray) {
console.log(JSON.stringify(promise));
// Output: promise: {"_pending":true,"_canceled":false,"_promise":{}}
}
Promise.all(promiseArray).then((results) => {
// Operate on results - works just fine
}).catch((e) => {
// Error handling logic
});
让我失望的是,当我将 Promises 添加到数组中时,它们被标记为“待处理”,这意味着它们已经开始了。
我认为它们应该在promiseArray 中处于非活动状态,而Promise.all(promiseArray) 将启动它们并解决它们。
这是否意味着我要启动它们两次?
【问题讨论】:
标签: javascript promise