[英]Put Javascript Promise into Functions
我有两个承诺要通过 promise.all 解决:
var mictest1 = new Promise((resolve, reject) => {
resolve(true);
});
var mictest2 = new Promise((resolve, reject) => {
resolve(true);
});
Promise.all([mictest1, mictest2]).then(data => {
console.log("test passed: " + data);
})
我想将承诺mictest1
和mictest2
放入一个名为mictest()
的函数中,以便它执行以下操作:
mictest();
Promise.all([mictest1, mictest2]).then(data => {
console.log("test passed: " + data);
})
这样我就可以随意调用函数了,当promise变得复杂的时候,我就没有promise.all
前面的promise.all
文字了
也许您正在寻找mictest
函数来返回Promise.all
?
const mictest = () => { var mictest1 = new Promise((resolve, reject) => { resolve(true); }); var mictest2 = new Promise((resolve, reject) => { resolve(true); }); return Promise.all([mictest1, mictest2]); }; mictest().then((data) => { console.log('test passed:', data); });
我认为您正在寻找一个返回承诺的函数:
function mictest() {
return new Promise((resolve, reject) => {
resolve(true);
});
}
你会像这样使用它
var mictest1 = mictest();
var mictest2 = mictest();
Promise.all([mictest1, mictest2]).then(data => {
console.log("test passed: " + data);
})
或者干脆
Promise.all([mictest(), mictest()]).then(data => {
console.log("test passed: " + data);
})
不像你想象的那样,但你可以非常接近:
let promises = mictest();
Promise.all(promises).then(data => {
console.log("test passed: " + data);
})
这只是改变了你想象中的代码的两行。 实现很简单:
function mictest () {
return [
new Promise((resolve, reject) => {
resolve(true);
}),
new Promise((resolve, reject) => {
resolve(true);
})
]
}
承诺是一个值,就像字符串、数字、数组等。你可以把它当作任何值来对待。 它恰好是一个具有 .then .then()
方法并且是可等待的对象
注意:实际上,任何带有 .then
.then()
方法的对象都是可等待的,即使是您自己自定义创建的非承诺对象(实际上,任何带有.then()
方法的对象都是承诺,即使它不是承诺)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.