我在Internet Explorer(IE)10中遇到了这种情况,如果我有一些由Promise和setTimeout函数组成的异步代码序列,延迟为1,延迟为0 ms,执行顺序是setTimeout(0) - > resolve-> setTimeout(1)。根据我的理解,执行顺序应该是解决 - > gt; setTimeout(1) - > setTimeout(0)。
var getData = function() {
return new Promise(function(resolve, reject) {
resolve("Promise resolved")
});
}
getData().then(function(value) {
console.log(value)
});
setTimeout(function() {
console.log("setTimeout 1")
}, 1);
setTimeout(function() {
console.log("setTimeout 0")
}, 0);

理解这种行为的任何帮助都会很棒。