快速解决异步回调的问题

本文介绍了jQuery中的Deferred对象及其在处理异步操作中的作用,特别是如何利用它来解决回调地狱问题。通过$.when()方法合并多个Promise,使用deferred.resolve()和deferred.reject()来改变状态,以及done(), fail(), always()等方法来响应解决或拒绝。jQuery Deferred提供了一种优雅的方式来管理异步流程。
摘要由CSDN通过智能技术生成

大家晚上好!我相信:目前市场上的前端老友们,在解决异步回调函数时序时,加上大家ES6的热度,首先
想到是promiseAPI;其实,做过老项目的,难以忘记jquery Deferred这个牛逼的API,解决地狱式的异步
问题显得很easy!!! 接下来,给大家简单的介绍一下这位兄弟:

demo

    function ok(name){
				 var dfd = new $.Deferred();
				 callback:func(){
				
				    return dfd.resolve( response );
				 }
				 return dfd.promise();
				}
      $.when(ok(1),ok(2)).then(function(resp1,resp2){})

相关API 分成3类

		1类:$.when(pro1,pro1) 将多个 promise 对象以and的关系 合并为1个
		2类:promise 激发为 解决 deferred.resolve([ args ] ) deferred.resolveWith( context, [ args ] )
		和 拒绝 .reject  .rejectWith
		context 上下文 替换 this 和通知 .notify  .notifyWith
		3类: 对激发的响应  解决时deferred.done(args) 拒绝时 deferred.fail() 通知时 deferred.progress()
		不管 解决 或 拒绝 deferred.always()
		deferred.then( doneCallbacks, failCallbacks [, progressCallbacks] )
		promise(或者叫deferred 延迟对象如何获取?)
		var dfd = new $.Deferred(); return dfd.promise();
		返回promise当前状态
		deferred.state()  pending(尚未完成) resolved rejected
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值