我对Promises很新,并想知道为什么我的Promise定义在没有调用.then()
或解决它的情况下执行。
var promise = new Promise(function (resolve, reject) {
console.log("Starting loader");
resolve();
});
如果您运行示例并看到控制台,您将看到'正在启动的加载程序'消息。
答案 0 :(得分:14)
这就是承诺的定义方式。他们立即运行执行功能。它在规范中:Promise(executor),第10步。
这是revealing constructor pattern的一个实例;阅读可能有助于你理解。
答案 1 :(得分:4)
这是因为promise 将立即执行并同步执行。
.then()
添加在履行承诺(resolve
参数)或拒绝承诺(reject
参数)时将执行的函数。
,来自@Kirill Slatin的评论信息