【发布时间】:2017-06-26 09:53:18
【问题描述】:
假设我有以下Promise:
function doSomethingAsynchronous() {
return new Promise((resolve) => {
const result = doSomeWork();
setTimeout(() => {
resolve(result);
}), 100);
});
}
doSomeWork() 在哪个时间点被调用?是在构造Promise 之后立即还是在构造之后?如果没有,是否需要明确执行其他操作以确保 Promise 的主体运行?
【问题讨论】:
-
没关系:如果您需要强制执行操作顺序,请明确执行。不同的实现将处理行为略有不同的承诺(例如,蓝鸟与原生地图)。
-
这可能有助于解释事情:stackoverflow.com/questions/42031051/…。它涵盖了稍微复杂一点的情况(promise 中的promise),但肯定涵盖了这里发生的事情,包括当promise 在
.then()处理程序附加之前解决时会发生什么。 -
请不要关闭这个问题,因为它与只有错误答案的问题重复。 no,这不是依赖于实现而是指定的。
标签: javascript ecmascript-6 promise es6-promise