将承诺分配给变量,而不是结果或执行的承诺?

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++中使用了运算符“=>”,更多信息请看这里:

https://www.w3schools.com/jsref/jsref_operators.asp