将承诺分配给变量,而不是结果或执行的承诺?
Assigning a promise to a variable, not the result or executed Promise?
假设我们有一个承诺:
const aPromise = new Promise(()=>{console.log('promise executed');})
简单地分配这个 Promise,执行它并在控制台上显示:
promise executed
当我调用 aPromise 时,它没有登录控制台,console.log(aPromise) 的结果显示它已解决。
我的问题是,如何在没有获得 executed/resolved 的情况下分配 Promise,以便我可以多次调用它?
您可以将其包装在这样的函数中:
const getPromise = () => new Promise((resolve,reject) => {
console.log('Promise executed')
resolve()
})
现在可以多次调用了:
getPromise().then(() => { // do something })
您可以简单地 return 函数中的承诺并将其分配给变量
function returnpromise(val) {
return new Promise((resolve, reject) => {
if (val > 5) {
resolve("resolved hello"); // fulfilled
}
else {
reject("rejected"); // rejected
}
});
}
let prom=returnpromise(6);// assign promise to variable prom
console.log(prom) // returns Promise { 'resolved' }
// to get the data use it many times
prom.then(a=>console.log(a));
Promise() 中没有输入参数:
function Promise() {
console.log('promise executed');
}
const aPromise = new Promise();
在 Promise 中输入参数(arguments)
function Promise(a) {
console.log(a);
}
const aPromise = new Promise("promise executed");
注意:在Javascript中没有使用运算符“=>”,在C/C++中使用了运算符“=>”,更多信息请看这里:
假设我们有一个承诺:
const aPromise = new Promise(()=>{console.log('promise executed');})
简单地分配这个 Promise,执行它并在控制台上显示:
promise executed
当我调用 aPromise 时,它没有登录控制台,console.log(aPromise) 的结果显示它已解决。
我的问题是,如何在没有获得 executed/resolved 的情况下分配 Promise,以便我可以多次调用它?
您可以将其包装在这样的函数中:
const getPromise = () => new Promise((resolve,reject) => {
console.log('Promise executed')
resolve()
})
现在可以多次调用了:
getPromise().then(() => { // do something })
您可以简单地 return 函数中的承诺并将其分配给变量
function returnpromise(val) {
return new Promise((resolve, reject) => {
if (val > 5) {
resolve("resolved hello"); // fulfilled
}
else {
reject("rejected"); // rejected
}
});
}
let prom=returnpromise(6);// assign promise to variable prom
console.log(prom) // returns Promise { 'resolved' }
// to get the data use it many times
prom.then(a=>console.log(a));
Promise() 中没有输入参数:
function Promise() {
console.log('promise executed');
}
const aPromise = new Promise();
在 Promise 中输入参数(arguments)
function Promise(a) {
console.log(a);
}
const aPromise = new Promise("promise executed");
注意:在Javascript中没有使用运算符“=>”,在C/C++中使用了运算符“=>”,更多信息请看这里: