js异步编程解决方案

本文总结了JavaScript中处理异步操作的解决方案,从传统的回调函数出发,探讨了Promise如何改善异步代码的可读性和错误处理,并介绍了Generator和Async函数作为更现代的解决方案。
摘要由CSDN通过智能技术生成

这里所说的异步解决方案,主要针对了多个异步操作,并且异步操作之间相互依赖,这里总结一下解决方案。

1、回调函数

这是最古老的方法,尽管能解决异步相互依赖的情况,但是当异步操作过多,多层嵌套的回调函数会让代码可读性非常差,也不够优雅,另外也没有比较好的错误处理机制,例如:

$.get(path1,function(data1){
	$.get(path2,function(data2){
		$.get(path3,function(data3){
			console.log('done');
		});
	});
});

接下来是es6之后提出的一些解决方案:

2、promise

简单来说是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。

promise对象有两个特点:

①对象的状态不受外界影响,有三种状态:pending(进行中)、fulfilled(已成功)、rejected(已失败),只有异步操作的结果,才能决定当前是哪种状态

②一旦状态发生改变,就不会再产生变化(pending-fulfilled,pending-rejected),这时候就称为resolved,如果改变已经发生,再给promise对象添加回调函数,也能得到结果,这与回调函数不同,回调

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值