为什么我的承诺定义被执行
Why does my Promise definition gets executed?
我对承诺很陌生,想知道为什么我的承诺定义在没有我调用.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的评论
相关文章:
- 如何使用自定义标头跨域执行AJAX POST
- Dojo AMD加载程序执行定义具有空/缺失依赖项的回调
- ExtJS 4-自定义排序函数只在点击列标题后执行
- 使用html 5对元素执行自定义表单验证功能
- 具有onclick功能的自定义复选框在实际切换复选框之前执行功能
- 要求多页&多应用程序未执行定义回调
- 消除自执行匿名函数中未定义的TypeError
- 对象在循环中运行时未定义,但在按顺序执行时未定义
- 阻止执行自定义事件
- 在执行脚本之前,请查看对象是否未定义
- 客户端自定义验证不是't正在执行
- 在部分视图内渲染的WebGrid将引发“;“jQuery未定义”,当尝试执行基于ajax的分页或过滤时
- 隔离范围-仅在指令范围内定义的值必须执行更改
- Chained Promise给出了未定义的函数错误,但我可以单独执行这些函数
- 如何使用子窗口上下文执行在父窗口中定义的函数
- "未定义“角度”;在Liferay中存储的角度应用程序上执行Protractor测试时出错
- 为什么黄瓜不执行我的步骤定义
- JavascriptCore:从本机代码执行JavaScript定义的回调函数
- 如何从 Ajax 响应中执行主窗口中定义的 Javascript 函数
- 我如何从页面执行定义到包含在页面中的.js文件中的JavaScript函数?