您如何看待以下问题?
var starter;
starter = $.Deferred();
starter.then(function () {
console.log('promiseOne done');
});
starter.resolve();
var now=new Date().getTime();
var stop=now+5000;
while (stop>new Date().getTime()){}
console.log('main thread finished');
在 j Query-1.11.1 中,我们得到:
promiseOne done
main thread finished
这显然是错误的,在jQuery 3.0中,我们得到:
main thread finished
promiseOne done
希望这是我们所期望的,因为 promise 回调是异步执行的。
但是,通过将.then替换为.done,在这两种情况下我都会得到:
promiseOne done
main thread finished
这里发生了什么?这仍然是 jQuery 3.0 或 .done 回调同步执行的错误吗?