async/await完美解决异步队列 / 网络研习社#46
在JavaScript中几乎所有的函数都是异步的,这有好处,但也引起了一些问题。比如,如何保证异步函数按顺序执行呢?
举个例子,有三个任务:A, B , C ,因为是异步函数,所以JS几乎会同时调用这三个函数,谁先执行完,谁后执行完并不知道。如果是不相关的三件事倒还好,如果你需要它们顺序执行的话,那可要费点劲了。
前面我提到Promise的解决方案,A -> B -> C ,它有专门的 .then的用法,有点类似这样:
Promise{
(A is done)
}
.then(B is done)
.then(C is done)
这种用法还不错,但还有一种更好的方案,那就是async/await异步队列!用它写的话是这样的:
async{
await (A is done)
await (B is done)
await (C is done)
}
这种写法更符合人的思维逻辑,更容易理解。async函数还比较新,webpack打下包也能用的。用它来写队列真是一个完美的方案。
多个异步任务用async/await来解决是个完美的方案,前提是这些异步任务都要用Promise包装一下,要有一个明确的结束点,否则谁也没法知道结束的时间点。
完成了promise函数的封装,把它们丢进async函数中就行啰。
async function main(){
await A任务
await B任务
await C任务
}
main()
//A,B,C 都是Promise函数,它们将按顺序执行
async函数和普通函数写法差不多,没有太大的差异,但它却能解决异步的问题,是个相当完美的方案!
Leave async/await完美解决异步队列 / 网络研习社#46 to:
Read more #cn posts
Best Posts From lemooljiang
We have not curated any of lemooljiang's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From lemooljiang
- Nextjs初体验,和Nuxt的异同
- DeepTutor:AI个性化辅导平台 / ai #57
- ComfyUI:可编程和自动化的PS / ai #56
- 将Neo4j封装进Agent / ai #55
- 闲鱼省钱大法:极限0.5折!
- 对Neo4j批量导入结构化数据 / ai #54
- langchain对neo4j进行交互,写入和查询数据 / ai #53
- 知识图谱和图数据库Neo4j的作用和使用场景 / ai #52
- SpaceX、美股和比特币
- 又是币圈血洗日!
- 链股合流,当币安也开始卖股票啰
- 天涯社区重启,爷青回?
- 诺基亚在AI时代重新杀回来啦
- 《2049:未来10000天的可能》书中的镜像世界为什么不叫元宇宙
- 今天适合吃披萨
- 开通即被封,别再给Claude送人头了!
- 两根内存条引发的“官司”
- AI·Joe V12更新, 更新GPT-5.5和DeepSeek V4 等
- 中医进校园活动反响热烈
- 猪价低伤农,猪价贵伤民