Javascript Promise.all不显示数据
我不熟悉Promissions,我希望将类中的数据作为Promissions返回。我有两个类,每个类中有两个函数。我所做的每一个函数都是从一个类返回一个承诺,但我无法执行promise.all。下面是代码Javascript Promise.all不显示数据,javascript,node.js,promise,ecmascript-6,es6-promise,Javascript,Node.js,Promise,Ecmascript 6,Es6 Promise,我不熟悉Promissions,我希望将类中的数据作为Promissions返回。我有两个类,每个类中有两个函数。我所做的每一个函数都是从一个类返回一个承诺,但我无法执行promise.all。下面是代码 Class1 class TestClass { firstPromise() { return new Promise((resolve, reject) => { resolve('return first promise')
Class1
class TestClass {
firstPromise() {
return new Promise((resolve, reject) => {
resolve('return first promise')
})
}
secondPromise() {
return new Promise((resolve, reject) => {
resolve('return second promise')
})
}
}
module.exports.TestClass = TestClass;
Class2
class TestClass1 {
firstPromise() {
return new Promise((resolve, reject) => {
resolve('return first promise')
})
}
secondPromise() {
return new Promise((resolve, reject) => {
resolve('return second promise')
})
}
}
module.exports.TestClass1 = TestClass1;
Main function
let data = req.body;
let test1Object;
let testObject;
let testParam;
let testParam1;
if (data.hasOwnProperty('param1')) {
test1Object = new test1.TestClass1();
test1Object.firstPromise().then((data)=>{
testParam1 = test1Object.secondPromise();
});
}
if (data.hasOwnProperty('param2')) {
testObject = new test.TestClass();
testObject.firstPromise().then((data)=>{
testParam = testObject.secondPromise()
});
}
Promise.all([testParam,testParam1]).then((data)=>{
console.log(data)
});
它显示
[undefined,undefined]执行
Promise.all()
时,承诺尚未解析,因此testParam
和testParam1
是未定义的。我认为您应该将第一个承诺分配给testParam1
:
testParam1 = test1Object.firstPromise().then(data => test1Object.secondPromise());
类似地,testParam
的第二个:
testParam = testObject.firstPromise().then(data => testObject.secondPromise());
Promise.all
接受一个承诺数组,而不是一个“变量”数组,将来某个承诺回调将用一个值填充该数组。