UI渲染和JS执行先后问题

begin
ui在第一个事件循环之后innerHTML渲染成end我能理解,进入settimeout之后为什么渲染在微任务之前执行
MM们
浏览 673回答 2
2回答

慕斯709654

因为Promise是个异步的操作。你的.then()本质上就是一个callback回调函数。执行完newPromise()之后,仅仅给你返回一个句柄,然后继续往下执行div.innerHTML='finally';。js本来就是异步的。你想按正常的人脑逻辑执行的话,用async/await去做。但async本质上还是promise

泛舟湖上清波郎朗

虽然在超时调用中,但本质是不会变的,newpromise()异步的,和同步放在一起当然是同步先执行,虽然说promise是解决回调深渊问题的,但还是会进行一个异步操作,.then()返回结果。补充一句,业务逻辑的问题,你最好自己亲自调试下。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript