問題タブ [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.
javascript - JavaScript の deferred/promise の概念は新しいものですか、それとも関数型プログラミングの伝統的な部分ですか?
私は jQuery の deferred/promise パターンまたはパラダイムのアイデアが本当に気に入っていますが、より細かい点や特定の実装の詳細に年老いた脳を巻き込むのに苦労することがあります。
実際、最近私は、遅延/約束パターン/パラダイムが jQuery よりも前にあるようであり、少なくともこれらの他の JavaScript ライブラリ/フレームワークにも含まれていることを発見しました。
- 延期された github
- Qホームページ
- task.jsホームページ
- when.js github
- wire.js github、プレゼンテーション
- YUIギャラリー延期モジュール
私はおそらくいくつかを見逃したり、実際には他のものの一部である内容を含めたり、そのリストに他の間違いを犯したりしています...編集して修正するか、コメントを残してください.
遅延/約束の概念は「Q」によって発明されましたか? 他の JavaScript ライブラリまたはフレームワークで発明されたものですか? それとも、JavaScript よりも完全に古いものですか?
アイデア全体が伝統的に関数型プログラミングの一部である場合、これらのさまざまな異なる JavaScript 実装ではなく、どこで最初に行われ、一般的な概念についてどこで読むことができますか?
それとも、関数型プログラミングは完全に的外れなのでしょうか? この概念は、関数型プログラミングよりも並行プログラミングに関連していますか?
javascript - Node.jsの延期されたpromisify+mongoose
nodejsモジュールの「deferred」と「mongoose」を使用した人はいますか?deferred.promisifyメソッドをマングースモデルの関数で機能させて、簡単にチェーンできるようにしようとしていますが、いくつかの問題が発生しています。具体的には、 ObjectIDによって別のドキュメントによって参照されている1つのドキュメントを連鎖的に検索できるように、find
および関数を約束したいと思います。findById
これが私が持っているものです:https ://gist.github.com/3321827
getAppPermissions
ただし、 and関数はマングースモデルのandメソッドのgetApplication
ラッパーにすぎないように見えるため、これは理想的とは言えません。find
findById
約束する関数を渡そうとしましたが、正しいオブジェクトにバインドされていないObject #<Object> has no method '_applyNamedScope'
ため、原因と思われるエラーが発生します。this
おそらく、underscore.bindを使用する必要がありますか?誰かがこの分野で成功したことがありますか、それとも私は今働いているものに固執する必要がありますか?
python - Pythonツイスト:非同期操作の後に接続に書き込むサーバー?
NetstringReceiverプロトコルの子を実装したサーバーがあります。クライアントの要求に基づいて(txredisapiを使用して)非同期操作を実行し、操作の結果で応答するようにします。私のコードの一般化:
上記のコードでは、サーバーに接続しているクライアントは応答を受け取りません。ただし、コメントを外すとmyStringが取得されます
また、result_of_async_functionはstdoutに出力するため、空ではない文字列であることも知っています。
非同期関数の結果でクライアントに応答できるようにするにはどうすればよいですか?
更新:実行可能なソースコード
javascript - jQueryとAJAXを使用したJS変数の有効期間
私は現在、AJAXの非同期動作を回避しようとしています。問題は、私がすべて待たなければならない不特定の量のAJAX呼び出しがあることです。私はjQueryを使用して、成功ハンドラーを含む最後のajax呼び出しが終了するとすぐに手動で解決される遅延オブジェクトを作成しています。正常に動作しますが、then()関数が実行される前に、すべてが発生した関数が終了した(およびその関数内で宣言されたすべての変数をクリーンアップした)ようです。この問題を解決するには、必要な可変ユーザーをグローバルに宣言する必要があります。
私が宣言した場合
その後、それは動作しません。コンソールは、varusersが宣言されていないと述べています。(コード例を参照)。
この問題を解決するためのクリーンなアプローチは何ですか?必要なすべての変数をグローバルに宣言することは、私にはあまり良くないようです。
gwt - GWT Deferred Binding を使用して uibinder テンプレートを置き換える
GWT 2.4.0 を使用して、遅延バインディング ルールを使用して uibinder テンプレートを別のテンプレートに置き換えようとしています。
これを行うために私が思いついた方法は、uibinder のインスタンスを返す各 uibinder テンプレートの具象クラスを作成することです。ここに例があります。
次に、基本的に同じ ThemeTwoUiBinderImpl という 2 番目のクラスがあります。私のクラスは ThemeOneUiBinderImpl を参照し、getImpl().createAndBindUi(this) を呼び出します
そして、次の遅延バインディング ルール
これらのルールを設定すると、コンパイルすると、順列の数が 2 倍になり、何かが実行されていることがわかります...しかし、ページを読み込むと、theme1 uibinder がまだ読み込まれています。2 つの問題があります。
- なぜ機能しないのですか?
- 順列の数が 2 倍になるのはなぜですか? プロパティを theme2 に設定すると、theme2 の順列のみがコンパイルされると思いましたが、両方に対してコンパイルされますか?
- 遅延バインディングをどのように使用するように設計されていますか? 私がやっていることと似た外観パターンを使用して評価しましたが、私がする必要があることは完全にやり過ぎのようで、すでに2つのカスタムuibindersを書いています。これらのコンポーネントは、再利用または拡張できません。テーマは、単純なカスタム ヘッダー用です。
考え?ソリューション?ありがとう!
jquery - .then、.fail、.rejectを使用してjQueryのpromiseチェーンを解除しようとしています
更新:この問題は、jQuery1.7と1.8の結果でした。1.7でプロミスを使用しないでください。プロミスは、内でプロミスを返すことと連鎖できないため.then
です。1.8は彼らがそれを台無しにしなかったように見えます。
http://jsfiddle.net/delvarworld/28TDM/
期待される:'私は呼ばれるべきです'
実際:「私は決して呼ばれるべきではない」
問題:コールバックをチェーンし、それらのいずれかがチェーンを切断してfail
関数をトリガーし、他のチェーンされたコールバックをスキップできるようにしたい。すべてのthenがトリガーされ、失敗がトリガーされない理由がわかりません。
私はNodeJSのQライブラリから来ているので、.then
最初に試してみました。ただし、に変更し.pipe
ても効果はありません。
jquery-deferred - jQuery-一連のajaxリクエストが失敗しても完了するのを待つ延期
多数のajaxリクエストがすべて完了した後、それらが成功したかエラーが発生したかに関係なく、関数を実行するにはどうすればよいですか?
私は$.when.apply(this, array)
、延期されたjqXHRオブジェクトの配列を渡すために使用しようとしてきました。しかし、ドキュメントが言うように
Deferredの1つが拒否された複数のDeferredの場合、jQuery.whenはすぐにマスターDeferredのfailCallbacksを起動します。一部の延期は、その時点でまだ解決されていない可能性があることに注意してください。
jQueryの遅延オブジェクトを活用して、すべてのajax呼び出しが終了するのを常に待機するにはどうすればよいですか?
たぶん、他のすべての遅延をラップする独自の遅延を作成する必要がありますか?もしそうなら、私はそれを設定する方法がよくわかりません。
php - PHPコードを延期する方法はありますか?
PHPコードを延期する方法はありますか?
JavaScript のように、 を使用します<script defer="defer"></script>
。PHPコードで同じことをする方法はありますか?
更新: これが私が使用するコードです:
情報: このコードはサイドバーにあり、読み込み時に Web サイトが 2 ~ 3 秒間停止します。このプロセスをスキップして、サイトの残りの部分がロードされたときにこのコードをロードしようとしています....他のコーディングソリューションも受け入れています。
jquery - 遅延オブジェクトの問題
javascriptで遅延オブジェクトを使用して解決しようとしている問題があります(遅延オブジェクトは初めてです)。
問題: ユーザーが関数を実行しようとします (さまざまな関数が多数存在する可能性があります)。関数が失敗した場合...再度ログインを試みてから、再試行します (1 回)。ログインに失敗した場合。それでは、すべて失敗します。
これらの関数とログイン関数には、返される Ajax 呼び出しが含まれています。
私の質問は次のとおりです。関数内の他のすべてのコードが実行された後、最後に実行される var dfd (tryAjax 関数の最後) に依存できますか?
コードは次のとおりです。