首頁 >web前端 >js教程 >jquery Deferred 快速解決非同步回呼的問題_jquery

jquery Deferred 快速解決非同步回呼的問題_jquery

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原創
2016-05-16 15:06:381242瀏覽

jquery Deferred 快速解決非同步回呼的問題

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

deferred.pipe( [ doneFilter ], [ failFilter ] ) 


var defer = $.Deferred()

var filtered = defer.pipe( null, function( value ) {

   return value * 3;
});

defer.reject( 6 );
filtered.fail(function( value ) {
   alert( "Value is ( 3*6 = ) 18: " + value );
});

以上這篇jquery Deferred 快速解決非同步回呼的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn