我有以下代码:承诺为基础的功能回路不运行异步
function asyncLoop() {
return new Promise(function(res, rej) {
for(let i=0;i<=400000000;i++) {
if(i===400000000) {console.log("done"); res();}
}
});
}
asyncLoop().then(()=>{console.log("then")});
console.log("out");
我得到以下输出:
done
out
then
据我承诺的理解,asyncLoop应该异步运行及以下应该是输出:
out
done
then
什么我错过了吗?
https://stackoverflow.com/a/5436869/1278540然后VS做 –
@DebajyotiDas这是关于jQuery的承诺 - 这使用本机。 – Jamiec
Promise没有“魔术”属性来创建一些尚未异步的异步事件。它们只是一个标准化的通知和错误处理方案 - 仅此而已。如果底层操作不是异步的,那么将其包装在承诺中不会以某种方式使其变为异步。 – jfriend00