问题描述
我对 Promises 很陌生,想知道为什么我的 Promise 定义在没有调用.then()
或解决它的情况下被执行。
var promise = new Promise(function (resolve, reject) {
console.log("Starting loader");
resolve();
});
如果您运行示例并看到控制台,您将看到“正在启动加载程序”消息。
1楼
这就是 Promise 的定义方式。 他们立即运行他们的执行程序功能。 它在规范中: ,第 9 步。
这是一个实例; 阅读可能有助于您理解。
2楼
发生这种情况是因为承诺将立即同步执行。
.then()
添加将在承诺完成( resolve
参数)或被拒绝( reject
参数)时执行的函数。
来自@Kirill Slatin 评论的信息