为什么Promise.all()允许任何对象作为迭代被传入?为什么Promise.all()允许非Promise对象?
例如(的jsfiddle:https://jsfiddle.net/npqgpcud/6/):
var promise1 = "one";
var promise2 = 2222;
var promise3 = new Promise(function (fulfill, reject) {
fulfill("three");
});
Promise.all([promise1, promise2, promise3]).then(results => {
p1.innerHTML = results[0];
p2.innerHTML = results[1];
p3.innerHTML = results[2];
});
如果我想模仿这种行为的单一承诺,有没有推荐的解决方案,或者将它推荐给使用Promise.all([承诺])?
你的意思是,如果你想创建一个***解决了一个承诺,以***一个你已经拥有的价值? –
为什么?因为它允许任何[可用](http://stackoverflow.com/q/29435262/1048572),而不仅仅是承诺,并且'Promise.resolve'算法也可以处理普通值。当你知道一个变量从不包含承诺时,你不应该使用这个。 – Bergi