問題タブ [jquery-deferred]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - $.deferredを使用したjquery
jQuery$.when
関数を使用して、2つの$.getJSON
非同期呼び出しを同期しています。両方の呼び出しからのデータのマージは正常に機能するようになりましたが、jQueryオブジェクトの配列であるマージの内容を返したいと思います。
$.when
非同期呼び出しを同期するコードを含む別の関数をラップした関数を使用して、これを実現しようとしています。私のコードは次のようになります:
mergedData
配列の内容を呼び出し元の関数に戻すにはどうすればよいですか。非同期呼び出しの性質がこの動作を引き起こしていることがわかっているので、問題を解決するパターンが必要です。ありがとう。
javascript - jquery スクリプト 1.5.2 を when 関数と互換性を持たせる
私はこの機能を作る必要があります
jquery 1.5 と互換性のある関数に変換します。
私は試してきましたが、それを機能させることができません。誰でも私を助けてくれますか?
@編集:ここでセットアップを行いましたhttp://jsfiddle.net/u4hWf/。ご覧のとおり、jquery 1.5.2 では奇妙な視覚的なことが起こりますが、jquery 1.6.x では発生しません。
jquery - Deferred の配列 -- 配列結果へのアクセスに関する問題
これはとても奇妙に思えます。
私は次のものを持っています
私の予想では、引数は、Deferred の配列内の 1 つの呼び出しに対して 1 つのオブジェクトの配列になり、遅延配列内の X 呼び出しに対して X オブジェクトの配列になります。
なぜこれが起こっているのかはわかっていますが、配列の長さをチェックするのはイライラします。オブジェクトが 1 つしかない場合、Arguments は配列ではなく、1 つ以上ある場合です。それは明らかです。最初の呼び出しを表すだけでなく、返されるパラメーターを作成するためにできることはありますか?
jquery-deferred - jQueryの据え置きを使用する
私はjQueryの延期について読んでいますが、それらの使用方法を完全に理解することはできません。
私は次の深くネストされたコードを持っています
各Repository.Projects.*
メソッドには、データを取得するための非同期呼び出しが含まれています。渡される関数はコールバックであり、成功時に結果のデータが渡されます。リポジトリはジェネリック関数でエラーを処理するので、エラー関数を渡す必要はありません。xslt変換の前に、これらのそれぞれが呼び出され、データが返されることを確認する必要があります。
すべてのメソッドはRepository.Projects.*
次のようになります
これを書き直せるはずなのに、どうしたらいいのかわからない。
jquery - jqueryを使用してajax呼び出しをチェーンする方法
ブラウザをロックせずに一連のNajaxリクエストを行う必要があり、これを実現するためにjquery遅延オブジェクトを使用したいと思います。
これは3つのリクエストを含む単純化された例ですが、私のプログラムは100を超えるキューを作成する必要がある場合があります(これは正確なユースケースではないことに注意してください。実際のコードは、次の実行前にステップ(N-1)の成功を確認する必要があります。ステップ):
コンソールに書き込まれる内容は次のとおりです(すべての要求は並行して行われ、応答時間は予想どおり各国のデータのサイズに正比例します。
延期されたオブジェクトにこれらをキューに入れるにはどうすればよいですか?パイプに変更を加えてみましたが、同じ結果が得られます。
望ましい結果は次のとおりです。
編集:
配列を使用してリクエストパラメータを保存するという提案に感謝しますが、jqueryの遅延オブジェクトにはリクエストをキューに入れる機能があり、この機能を最大限に活用する方法を学びたいと思っています。
これは事実上私がやろうとしていることです:
ただし、各トラバーサルを効果的に使用するために、一度に1ステップずつパイプにリクエストを割り当てたいと思います。
jquery - ループ内の複数の ajax 呼び出しに対して jQuery の deferred / promise / when / then 機能を使用する方法はありますか?
新しい jQuery 機能を使用して// Deferred
/ AJAX クエリなどの複数の非同期イベントに対する操作を簡素化する方法を読んでいます。promise
when
then
しかし、私が読んできた例はすべて、事前にわかっている一定数のクエリについて語っています。
(コーディングフリークの回答 hereから借用)
MediaWiki および StackExchange API の一部の機能など、異なるパラメーターを使用してループ内で同じページ化された Web API を呼び出すなど、それらを事前に知らない場合はどうなりますか?これらの新しい jQuery を利用する方法はありますか?この場合の機能ですか、それとも古い方法に戻る必要がありますか?
javascript - jQuery Deferreds、.pipeおよび例外
私はこのようなコードを持っています(もちろん、それほどばかげていません):
問題は、で例外をスローしても、.pipe
doneFilter
jQueryがそれを失敗と見なすようには見えず、その結果、でキャッチされない例外が発生することdoneFilter
です。
別の方法は、新しい遅延を作成し、の周りにtry-catchブロックをスローすることdoneFilter
ですが、それを回避するためのより良い方法があるかどうか疑問に思いました。
jquery - プラグイン内で jQuery Deferred を使用して、常にクリーンアップ メソッドを呼び出す
jQuery UI プラグインを作成しています。そのプラグイン内でアクションが発生すると、プラグイン オプションの 1 つをコールバックとして呼び出します。そのコールバックが完了したら、クリーンアップ コードを実行したいと思います。
より具体的に言うと、私のプラグインは、ドラッグおよびドロップ可能な jQuery UI を使用しています。droppable dropで、 updateというオプションで定義された関数を呼び出します。AJAX 呼び出しであるupdateが呼び出された後、クリーンアップを実行したいと考えています。プラグインのユーザーがこのクリーンアップ コールを実行する必要はありません。AJAX メソッドの更新が成功した後、クリーンアップ呼び出しが自動的に行われるようにします。
ここでは、jQuery の Deferred を使用するのが理にかなっていると思いました。プラグインのドロップ実装のコードを次に示します。
プラグイン実装者のコードは次のようになります。
dropコールバックへの約束として AJAX 呼び出しを返しています。ドロップ コールバック内では、クリーンアップ操作removeSelectedItemsを常に実行したいので、.then() 関数を使用します。実行されていないようです。
このパターンは良いアイデアのように聞こえますか。このデザインを手伝ってくれる人はいますか?ドロップコールバック内で完了関数が実行されないのはなぜですか?
jquery - $.ajax の success と .done() メソッドの違いは何ですか
誰でも私を助けることができますか?との
の違いがわかりません。success
.done()
$.ajax
可能であれば、例を挙げてください。
jquery - 再帰なしで可能な場合/その後、jQueryが延期された後にのみ発生する各反復のループ?
ループ内で jQuery 遅延関数を呼び出したいのですが、各反復は、遅延関数を使用して前の反復が完了するまで待機する必要があります。when()
もちろん、getJSON
は非同期であるため、すべての反復のすべてのリクエストは、いずれかwhen
が呼び出される前に実際に送信されます。
ここにあるものをthen
.
しかし、再帰の代わりに使用するのに欠けているテクニックがあるかどうか疑問に思っています。将来のある時点で再帰がスタックを使い果たすことを常に心配しています。このパラメーターnum_of_iterations
は潜在的に非常に大きくなる可能性があります。
これに使えますpipe()
か?フィルタリングに関するすべての話で、ドキュメントを理解するのに苦労しています...