問題タブ [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 - jQueryの遅延パイプを使用する最も簡潔な方法は何ですか?
私は自分のRESTAPIをラップするjavascriptAPIを設計しています。私は一般的に、多くの冗長で紛らわしいネストされたコールバックを避けたいと思っており、DeferredjQueryの良さを読んでいます。
人のオブジェクトと人のオブジェクト間を移動する方法を表す私のライブラリ「myLib」を想像してみましょう。'dad'、'boss'、'assistant'などのメソッドがたくさんあり、データを見つけて別の関連する'people'オブジェクトを返すためにajaxリクエストを実行する必要があります。しかし、私は彼らに、私が一緒にチェーンできるmyLibのメソッドも持つ遅延オブジェクトを返してもらい、次のような非常に簡潔なコードを記述してもらいたいと思います。
これにより、「me」personオブジェクトが作成され、最初のajax呼び出しを実行して私の詳細を検索し、そのデータを使用して別の呼び出しを実行して私の親を検索し、次にもう一度上司を検索し、次に別の呼び出しを実行してアシスタントを取得します。最後に、それは私のコールバックに渡され、私はそれを処理します。jQueryの連鎖トラバースメソッドに似ていますが、非同期です。
関数を任意の時点(通常は最後のメソッド)に渡すと、チェーン内の最後のDeferredオブジェクトが解決されたときに内部的に呼び出されます。2番目の関数は失敗コールバックであり、チェーン内の遅延オブジェクトのいずれかが拒否された場合に呼び出されます。
jQueryの遅延オブジェクトを作成して拡張する必要があると思いますが、それが「最善の」方法かどうかはわかりません。
では、ミニマリストAPIの目標を達成するためのベストプラクティスの方法は何ですか?基本的に、すべてのメソッド名をドメイン問題の名前空間で100%にし、「when」、「done」、「success」などの多くで汚染されないようにします。
そして、どこかでエミュレートできる同様のクリーンなAPIの例はありますか?
jquery - jQuery Deferred チェーン
一連の要素をループしているときに、アニメーション チェーンを作成したいと考えています。最初のステップのアニメーションが完了すると、次のループ ステップが呼び出されます。チェーンは次のようなものです。
ステップ 1 (要素 A で作業)
背景色を
変更する フォントの色を変更する
(--> 発射 ステップ 2)
背景色を再度
変更する フォントの色を再度変更する
ステップ 2 (要素 B で作業)
背景色を
変更する フォント色を変更する
1 秒待つ
背景色を再度
変更する フォント色を再度変更する
--> resolve() を起動する
私はこれを書いた:
「console.log('done')」がすべてのパイプの最後にのみ書き込まれることを望みました..しかし、アニメーションも開始しません!
なにが問題ですか?
(私のひどい英語で申し訳ありません。私がコーディングしようとしていることを理解できます)。
python - ツイスト遅延コールバックで例外をキャッチする方法は?
functionnextCall-決して呼び出さない。それで、ValueErrorを見つけることができましたか?
ありがとう。
javascript - 公開にコールバックを添付する
公開されたイベントが完了したときに、イベント/コールバックを道場公開に添付する方法を誰かが知っているかどうか疑問に思いました。
委任されたタスクとして何かを公開しています。委任されたタスクが完了したら、UIを変更したいと思います。
方法を知っている場合、またはそれが不可能であることがわかっている場合は、お知らせください。
編集:公開されたイベントが終了した後に公開者に値を返すことができれば、私もやりたいことができると思います。
javascript - Deferredオブジェクトとそれ自体のpromiseオブジェクトの違いは何ですか?
単純なDeferredオブジェクトを作成しましょう。
上記のDeferredオブジェクトは3秒間「保留中」の状態になり、その後「解決済み」の状態に切り替わります(この時点で、それにバインドされているすべてのコールバックが呼び出されます)。
また、そのDeferredオブジェクトのpromiseを取得してみましょう。
ここで、Deferredオブジェクトが解決されたときに呼び出されるコールバックを追加するには、.done()
またはを使用できます.then()
。ただし、このメソッドは、Deferredオブジェクト自体または独自のpromiseオブジェクトの両方で呼び出すことができます。
また
どちらの場合も、handler
関数が呼び出されます(この場合は3秒後)。
を使用する$.when
と、Deferredオブジェクト自体またはそのpromiseオブジェクトを再度渡すことができます。
また
繰り返しますが、上記の2行のコードに違いはありません。
ライブデモ: http: //jsfiddle.net/G6Ad6/
だから、私の質問は、Deferredオブジェクト自体.then()
で.done()
、などを呼び出すことができ、そのDeferredオブジェクトをに渡すことができるので、promiseオブジェクトを取得する$.when()
ポイントは何ですか?.promise()
promiseオブジェクトの目的は何ですか?機能にこの冗長性があるのはなぜですか?
django - only() を使用して遅延なしで参照を取得する QuerySet
次の点を考慮してください。
only()
他のすべてのフィールドを延期します。しかし、AFAICT、私はforeign_key1
延期しないように要求しましたが、そうです! また、反復ごとに db が 2 回ヒットするため、リストの理解には非常に長い時間がかかります。
クエリセットも試しforeign_key1__id
ましたが、役に立ちませんでした。まだ使用している間に外部キーを延期しないようにするにはどうすればよいonly()
ですか?
jquery - 「queue」または「deferred」をどのような条件で使用するか? 彼らの設計目的は何ですか?
私は混乱しています、アニメーションの「キュー」と「ajax」の遅延ですか?誰か典型的な例を教えてください。
python - ツイスト:失敗からエラーパラメータを取得する方法は?
私はコードを持っています:
エラーパラメータを失敗から抽出する唯一の方法は newEb で提示された方法ですか? failure.trap または failure.check を使用すると、エラー インスタンスを受け取ることができません。
jquery - `.load()` および/または ajax スタックによる遅延
製品のドロップダウン リストと、タイプ (教育、ゲーム) とメディア (本、CD) の 2 つのグループのフィルターを含む Web ページがあります。いずれかのフィルターからいつでも選択でき、ドロップダウンは ajax を介してそれに応じてフィルター処理されます。これはすべてうまくいきます。
フィルターを選択すると、ajax が解決されるまで、ドロップダウンの上にスロバーが表示されます。問題は、解決が完了する前にフィルターを複数回変更すると、最初のリクエストでスロバーが削除され、2 番目のリクエストがまだ進行している間にドロップダウンが再び表示されることです。これは私が修正したい小さな問題です。これがJavaScriptです:
明らかに、その間にラジオボタンが変更され、最初のボタン.load()
が解決され、リストが表示され、他のボタンが終了する前にスロバーが非表示になります。私はこのようなことができます:
しかし、Deferred
私はもっときれいな方法が必要だと感じています。現在の遅延スタックにリクエストを追加し、それらがすべて解決されるまで待機する方法はありますか (任意の時点で追加できます)。.load().then()
また、機能していないように見えることにも気付きます。Deferred
まったく使用できます.load()
か?.load()
返却するDOM要素のみ指定できるので便利です。そうでない場合、現在の ajax リクエストを管理し、すべてが一度に完了したときにのみアクションを実行する方法はありますか?
javascript - ページの読み込み後に JavaScript を読み込む
私は多くのトピックを読み、多くのことを試しましたが、私が望むものを得ることができません. ページの最後に js コードを移動したところ、エラーが発生しました。
これは私のページがどのように見えるかです:
fonctions.js には、Google Adsense コードがあります。
アイデアは、アドセンスの同じコードを1か所だけにすることでしたが、ファイルfonctions.jsの後にロードできません
defer="defer"、window.onload を試してみました...
何か案は?ありがとう
Firebug でこのエラーが発生します: エラー: adsense が定義されていません
PS: Jquery の使用は避けたい (ページが大きくなりすぎないようにするため)
アップデート:
fonctions.js に以下のコードを入れると「ok」が表示されます。
ただし、このコードがある場合、広告は表示されません:
私の推測では、それは Google の問題だと思います...この方法ではコードを読み込めません...? ページにアドセンス コードを配置すると (呼び出しの下 - alert('here');を実行する場所)、適切に表示されます...したがって、私のアドセンス コードは正しいです
更新: 最終的にソリューションを変更しました。コードを .html ファイルに入れ、php を使用してインクルードしました。そのため、もうjsファイルにはありません。とにかく助けてくれてありがとう。