async 会破坏执行的顺序吗?

苦逼码农 苦逼码农 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
不是应该所异步代码都在同步代码之后执行吗? 按照这个说法,


"===end1===
===end2==="

这两句打印信息在 insertData函数之前被执行啊? insertData在这两句之后被执行才对啊。



async function openDb(): Promise<void> {
console.log('===openDb===');
}

async function loadDb(): Promise<void> {
console.log('===loadDb===');
}


async function insertData(person: any): Promise<void> {
console.log('===enter into insertData===');
loadDb();
console.log('===await openDb===');
await openDb();
console.log('===after open===');
}

console.log('===start===');
insertData({ name: "yika" });
console.log('===end1===');
console.log('===end2===');


以下是执行结果:

===start===
===enter into insertData===
===loadDb===
===await openDb===
===openDb===
===end1===
===end2===

===after open===
...全文

相关推荐

async/await传染性解决方案[源码]

本文详细探讨了JavaScript中async/await的“传染性”问题及其解决方案。传染性指的是当函数使用async声明后,调用它的函数也必须处理Promise,否则可能导致执行顺序错误或未处理的Promise拒绝。文章提出了五种关键解决方案:1. 立即执行匿名函数(IIFE)隔离异步作用域;2. 分离异步逻辑与同步入口实现职责分层;3. 顶层await模块化控制执行时机;4. Promise链式调用中断传染链;5. 事件驱动架构完全解耦异步流程。每种方案都配有适用场景和代码示例,并提供了对比指南。最后总结了根治async传染性的原则,包括作用域隔离、架构分层、事件驱动、按需异步和拥抱Promise等策略,帮助开发者在享受async/await便利性的同时避免其对代码结构的破坏。

bean

confirm提示与同步执行[项目代码]

本文介绍了在使用confirm提示框时,如何通过添加await关键字确保代码按顺序执行。具体示例中,当flag为1时,首先调用getMsg方法获取消息,然后使用带有滚动条的confirm提示框显示消息,用户确认后才会继续执行testFunction方法。这种方法避免了异步操作导致的执行顺序问题,确保了代码的逻辑正确性。

chair

JavaScript异步加载浅析

前言 关于JavaScript脚本加载的问题,相信大家碰到很多。主要在几个点—— 1> 同步脚本和异步脚本带来的文件加载、文件依赖及执行顺序问题 2> 同步脚本和异步脚本带来的性能优化问题 深入理解脚本加载相关的方方面面问题,不仅利于解决实际问题,更加利于对性能优化的把握并执行。   先看随便一个script标签代码—— 代码如下: [removed][removed] 如果放在&lt;head&gt;上面,会阻塞所有页面渲染工作,使得用户在脚本加载完毕并执行完毕之前一直处于“白屏死机”状态。而&lt;body&gt;末尾的打脚本只会让用户看到毫无生命力的静态页面,原本应该

weixin_38725902

JS异步加载的三种实现方式

本篇文章主要介绍了JS异步加载的三种实现方式,有些时候我们需要JS异步加载,这里整理了详细的代码,有需要的小伙伴可以参考下。

weixin_38641896

udacity:来自 udacity 的课堂练习

大胆 JavaScript 设计模式 来自 udacity 的课堂练习

sleepsoft
评论 10
收藏 已收藏
分享
返回顶部
苦逼码农
JavaScript 87,984 成员 224,681 内容