【发布时间】:2016-12-17 10:19:28
【问题描述】:
我是 Promise 的新手,我想从类中返回数据作为 Promise。我有两个班级,每个班级有两个功能。我正在做的每个函数都是从一个类返回一个承诺,但我无法执行 promise.all。下面是代码
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)
});
它显示 [未定义,未定义]
【问题讨论】:
-
Promise.all接受一个承诺数组,而不是一个“变量”数组,这些“变量”将在未来被某个承诺回调填充一个值。
标签: javascript node.js promise ecmascript-6 es6-promise