简体   繁体   English

function 返回承诺{<pending> 在 JavaScript</pending>

[英]function return Promise{ <pending> } in JavaScript

if I store the value of the promise return by a function in a variable and then print it then it shows Promise { pending }.如果我将 function 返回的 promise 的值存储在一个变量中,然后打印它,那么它会显示 Promise {pending }。 Why?为什么? Because till 3 seconds promise will definitely resolved.因为直到 3 秒 promise 肯定会解决。

let move = false;
function my() {
return new Promise(
    (resolve, reject) => {
        if (move === true)
            return resolve("resolved")
        else
            return reject(new Error("Rejected"));
    })
}

let obj = my().then((result) => {
    console.log("result", result);
})
.catch((err)=>{
    console.log("my error");
});

//it prints promise{ <pending> }
setTimeout(()=>{
    console.log("time", obj)},3000
) 

The promise should wrap the setTimeout function and resolve after 3 seconds is over. promise 应该包装setTimeout function 并在 3 秒结束后解决。

let move = false;

function my() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      if (move) {
        resolve('resolved');
      } else {
        reject(new Error('Rejected'));
      }
    }, 3000);
  });
}

my()
  .then(res => {
    console.log(res);
  })
  .catch(err => {
    console.log(err.message);
  });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM