为了账号安全,请及时绑定邮箱和手机立即绑定

complete

deferred.promise(jqXHR).complete = completeDeferred.add; 这段有问题吧?  //complete 应该指向deffered.always  jqXHR.complete = jqXHR.always

正在回答

1 回答

completeDeferred=jQuery.Callbacks("once memory");
deferred.promise(jqXHR).complete = completeDeferred.add;

var fucTemp=function(f){};

deferred.promise(jqXHR).complete(fucTemp)=>
completeDeferred.add(fucTemp);

所以,调用ajax的complete 添加回调方法时,实际上是在向completeDeferred的这个Callbacks中添加回调。

在最后,ajax得到请求内容后,会调用completeDeferred中的回调队列

completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );
//callbackContext:为回调环境    => callbackContext = s.context || s
//[ jqXHR, statusText ]:回调方法的参数


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
jQuery源码解析(DOM与核心模块)
  • 参与学习       71439    人
  • 解答问题       82    个

由浅入深的剖析jQuery库的设计与实现,揭开框架背后的秘密

进入课程
意见反馈 帮助中心 APP下载
官方微信