1

Deferredオブジェクトのドキュメントには、オプションの関数の引数を取ることができると記載されていますが、例はありません。これはどのように使用しますか?

4

2 に答える 2

1

これはシンタックスシュガーであり、同じ遅延オブジェクトの解決または拒否時にコールバック/ハンドラーを追加できます。

したがって、次の2つのコード部分は同じことを行います。

// with constructor method argument
var x = $.Deferred(function(selfDfd){ 
           selfDfd.done( console.log.bind(console,'I am resolved,in constructor')); 
        });
x.resolve();

// without constructor method argument

var y = $.Deferred();
y.done(console.log.bind(console,'I am resolved, NO constructor args'))
y.resolve();
于 2012-12-04T00:07:30.363 に答える
0

次の構文を使用します。

      function foo(){ console.log("Yes!!!")}
      function bar(){ console.log("Are we there yet?")}
      function baz(){ console.log("I can't hold it much longer!?")}

      with($.Deferred() )
        {
        done(foo);
        bar();
        baz();
        resolve(foo);
        }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>

ジェネレーターも同じ効果があります。

      var foobarbaz = function(i){var count = count || i; return function(){console.log("Yes!!!"); return ++count;}}
      var bar = function(){ console.log("Are we there yet?")}
      var baz = function(){ console.log("I can't hold it much longer!?")}

      
      var done = foobarbaz(0);
      bar();
      baz();
      done();

参考文献

于 2012-12-02T01:22:54.353 に答える