AngularJS 承诺:如果在函数返回之前承诺准备就绪



我有一个函数调用返回一个承诺,大约需要 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 是单线程的)。

相关内容

最新更新