Javascript 承诺,返回的 then 和 catch 方法的承诺

威廉·范德维恩

对 Promises 有点鬼混,这是代码:

let prom1 = new Promise((res, rej) => {
  res('res');
});

const resolvedProm1 = prom1.then((val) => {
  return val
});
console.log(resolvedProm1);

let prom2 = new Promise((res, rej) => {
  rej('rej');
});

const resolvedProm2 = prom2.catch((err) => {
  return err
});
console.log(resolvedProm2);

chrome devtools 显示了有关 promise 的以下信息:

承诺,JavaScript 承诺

但是,我没想到这个特殊的输出。我期望的是以下内容:

  • resolveProm1 和 resolveProm2 都是<fullfilled>Promises 而不是<pending>. 为什么它们是待定的而不是完整的?
  • 解决了resolvedProm2被拒绝了,为什么promiseStatus显示解决了?
埃布尔

在这两种情况下,承诺在解决之前打印。您发送到 promise 上下文中的内容将始终在您当前的调用堆栈展开后执行,因此控制台会首先运行直到函数结束。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章