我有一个函数调用返回一个承诺,大约需要 10 毫秒才能完成我在里面(在另一个函数的开头)调用该函数,该函数需要很长时间才能完成(没有异步代码)。如果承诺在其主机函数完成执行之前解析,它会等待其主机函数完成吗?
function foo() {
getSomeValues().then(function() {
// getSomeValues takes approx. 10ms
console.log('Got Values');
});
for (var i = 0; i < 3; i++) {
// both operations take approx. 900ms
moveFile();
moveFileBack();
console.log('Iteration: ' + (i + 1));
}
}
这个函数会打印到控制台中什么(以什么顺序)?
是的。
promise 回调将始终在下一个事件循环帧上异步运行。
代码在执行函数时中断函数是完全不可能的(因为 Javascript 是单线程的)。