javascript - Promise的executor内部操作的含义是异步的
问题描述
在本文档中:MDN - Promise() 构造函数
有一句话:
- 执行器中的操作是异步的,并提供回调。
这是代码
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”。但似乎我不明白这句话的意思。请有人解释一下这是什么意思?
解决方案
让我们看一下您引用的上下文:
因此,鉴于以上所有内容,以下是典型流程的摘要:
- 执行器中的操作是异步的,并提供回调。
MDN 正在描述一个典型的流程。
您传递给 Promise 构造函数的执行器中的操作不是异步的(这使得使用 Promise 毫无意义)。
推荐阅读
- rest - 在 CustomException 的情况下返回错误 JSON 响应,而不是在 Sping boot Restful ws 中映射到 bean 的常规 json 响应
- angularjs - 从下拉列表中删除第一个空白项并替换为默认选择选项文本
- concurrency - 任务定义中的非法声明
- python - Jupyter 内核网关上的 POST 请求验证
- c - 对,我有这段代码,系统命令不断出现错误
- postgresql - postgresql中的范围序列
- python - 如何将我的 python 代码连接到 Qt Creator
- python - 通过 message_id 使用 exchangelib 获取电子邮件
- javascript - ngrx-通过扩展运算符覆盖默认值?
- mysql - GROUP BY 子句在 phpmyadmin 中不起作用