首页 > 解决方案 > Promise的executor内部操作的含义是异步的

问题描述

在本文档中:MDN - Promise() 构造函数

有一句话:

  1. 执行器中的操作是异步的,并提供回调。

这是代码

console.log('before promise');
new Promise(function(resolve, reject) {
  console.log('promise');


  let j = 0;
  for (i = 0; i < 1000000000; i++) {
    j++;
  }
  resolve(1);
  console.log('promise end');

}).then(function() {
  console.log('then');
});

console.log('not promise but after');

它显示在控制台中

我认为一旦 executor 中的操作是异步的,那么 Javascript 不应该等待 executor 中的代码完成,并且应该在“before promise”之后显示“not promise but after”。但似乎我不明白这句话的意思。请有人解释一下这是什么意思?

标签: javascriptasynchronouspromise

解决方案


让我们看一下您引用的上下文:

因此,鉴于以上所有内容,以下是典型流程的摘要:

  1. 执行器中的操作是异步的,并提供回调。

MDN 正在描述一个典型的流程。

您传递给 Promise 构造函数的执行器中的操作不是异步的(这使得使用 Promise 毫无意义)。


推荐阅读