javascript - Promise.then() 返回未定义值之后的 Promise.all()

标签 javascript promise

我有以下代码

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/

相关文章:

javascript - python x[1 :2:3] in Javascript?

javascript - 使用 jQuery 按时间间隔重新加载 Div 内容

javascript - NodeJS 异步函数不暂停

node.js - 处理来自 telegram bot api 的响应

javascript - 如何让 JavaScript 只影响特定标签之间的代码

javascript - AngularJS 与 ui-router : Changing value of a parent dependency of from child's controller

javascript - CSV 阅读完毕后,我该如何解决 promise ?

promise - Sequelize 正确执行多个创建 + 更新

javascript - 如何 .querySelectorAll() 形成 .getElementsByTagNAme() html 元素?

javascript - 更复杂的延迟/ promise 使用和链只是不点击。希望得到一些澄清