首页 > 解决方案 > Promise.all 中的 Javascript array.push 返回 undefined

问题描述

我有一个承诺,我正在向 Promise.all 推送一个值,但它返回未定义。

这是代码:

var arr = [];
    
        
    var mypromise = new Promise((resolve, reject) => {
        resolve('mypromise');
        arr.push(mypromise);
    }); 
    
    
    Promise.all([arr]).then(values => {
    	console.log(values);
    });

我怎样才能解决这个问题?

标签: javascript

解决方案


var arr = [];
    
    
    var mypromise = new Promise((resolve, reject) => {
        resolve('mypromise');
    }); 
    
    arr.push(mypromise);
    
    
    Promise.all(arr).then(values => {
        console.log(values);
    });
尝试这个。

您的 Promises 实现不正确,请参阅此 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

此外,您正在犯语法错误,例如 arr.push 应该在之后

var mypromise = new Promise((resolve, reject) => {
    resolve('mypromise');
}); 

并且 Promise.all 接受一个数组,而您正在做的是用另一个数组包装一个数组。


推荐阅读