为什么我的承诺定义被执行

Why does my Promise definition gets executed?

本文关键字:执行 定义 承诺 我的 为什么      更新时间:2023-09-26

我对承诺很陌生,想知道为什么我的承诺定义在没有我调用.then()或解析的情况下执行。

var promise = new Promise(function (resolve, reject) {
     console.log("Starting loader");
     resolve();
});

如果您运行示例并查看控制台,您将看到'Starting loader'消息。

https://jsfiddle.net/npqgpcud/

承诺就是这样定义的。它们立即运行它们的executor函数。在规范中:Promise(executor),第9步。

这是一个揭示构造函数模式的实例;

这是因为promise 立即同步执行。

.then()增加了当承诺被实现(resolve参数)或被拒绝(reject参数)时将执行的函数。

来自@Kirill Slatin的评论