通过setTimeout将同步代码改成异步是不可取的
来源:12-13 构建多异步+级联 then 【 第一种实现方式 首创精简写法】2

F_Gump
2021-12-07
setTimeout(() => {
resolve(result.resolve_executor_value);
},5)
我认为这种做法是不可取的,测试代码中异步任务的时延都是5ms,这只是一种巧合的设定;如果某一个then中的异步任务超过5ms,即在某一个事件循环中,上面代码的setTimeout被放入执行队列,而resolveInthen中的异步任务还没有到执行的时间,这样就会导致后面的then先于当前的then执行,这是不符合Promise执行逻辑的
写回答
1回答
-
keviny79
2021-12-07
这是个小问题,使用async ...await 轻松解决,增加这两个关键字后,就不会出现后面的setTimeout先执行了 参加截图
022021-12-07
相似问题