完了とその後の違い

php中世界最好的语言
php中世界最好的语言オリジナル
2018-03-15 15:12:456622ブラウズ

今回はdoneとthenの違いと、doneとthenを使用する際の注意点についてお届けします。実際のケースを見てみましょう。

jqueryのdeferredオブジェクトのdoneメソッドとthenメソッドはどちらもチェーン呼び出しを実装できますが、その機能は異なります。thenメソッドで渡したメソッドに戻り値がある場合、それが戻り値に渡されます。 next 呼び出しを連鎖させる方法。渡したメソッドに戻り値がある場合でも、done メソッドはこれに反し、チェーン内で呼び出される次のメソッドに戻り値を渡しません。例:

var defer = jQuery.Deferred();
defer.done(function(a,b){
  console.log("a = " + a+"b = " + b);
  return a * b;
}).done(function( result ) {
  console.log("result = " + result);
}).then(function( a, b ) {
  console.log("a = " + a+"b = " + b);
  return a * b;
}).done(function( result ) {
      console.log("result = " + result);
}).then(function( a, b ) {
  console.log("a = " + a+"b = " + b);
  return a * b;
}).done(function( result ) {
  console.log("result = " + result);
});
defer.resolve( 2, 3 );
出力結果は次のとおりです:

結果分析: 最初の完了と 2 番目の完了は両方とも defer.resolve(2, 3) を返しました。 )

2. Done のコールバックの戻り値は渡されません3. 2 番目の Done にはパラメータが 1 つだけあり、defer.resolve(2, 3) の最初のパラメータ 2 を受け取るため、結果は 2 になります 4. 最初の関数は defer.resolve(2, 3) を受け取り、2 つのパラメーターを受け取り、結果は 6 で、新しい遅延オブジェクト

を作成し、その結果を遅延オブジェクト

に渡します。新しい遅延オブジェクトと渡された結果。出力される結果は 6 で、この新しい遅延オブジェクトは 2 番目の then

6 に渡されます。2 番目のオブジェクトは、結果である新しい遅延オブジェクトを 1 つだけ受け取ります。したがって、パラメータ b には定義がなく、返される結果は NaN であり、新しい遅延オブジェクトが同時に作成されます

7 4 番目の Done は新しい遅延オブジェクトを受け取り、渡されたパラメータは NaN で、出力される結果は次のようになります。当然 NaN

あなたはこの記事の事例を読んだと思います。あなたはその方法をマスターしました。さらにエキサイティングな情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

jQuery の Validate プラグインが入力値を検証する方法


jQuery EasyUI 折りたたみパネルの使用

以上が完了とその後の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。