我有以下代码
var pOne = new Promise(function(callback){
setTimeout(function(){
callback(false);
}, 100);
}).then(function(v){
console.log("pOne: " + v);
});
var pTwo = new Promise(function(callback){
setTimeout(function(){
callback(true);
}, 100);
}).then(function(v){
console.log("pTwo: " + v);
});
Promise.all([pOne, pTwo]).then(function(values){
console.log(values);
});
console.log(values)
在控制台中显示[undefined, undefined]
。我对 Promise 的理解是我应该能够链接 then() 方法。链接是否不适用于 Promise.all()
或者这是一个错误。
注意:我正在使用 promise-polyfill但在 chrome 上运行它,所以从技术上讲它是使用原生 chrome 实现的 promise 。
最佳答案
您的 pOne 和 pTwo promise 不会返回任何内容。
试试这个:
var pOne = new Promise(function(callback){
setTimeout(callback, 100, true);
}).then(function(v){
return v;
});
var pTwo = new Promise(function(callback){
setTimeout(callback, 100, false);
}).then(function(v){
return v;
});
Promise.all([pOne, pTwo]).then(function(values){
console.log(values);
});
关于javascript - Promise.then() 返回未定义值之后的 Promise.all(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41006753/