問題タブ [promise]
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 - ループ内の複数の ajax 呼び出しに対して jQuery の deferred / promise / when / then 機能を使用する方法はありますか?
新しい jQuery 機能を使用して// Deferred
/ AJAX クエリなどの複数の非同期イベントに対する操作を簡素化する方法を読んでいます。promise
when
then
しかし、私が読んできた例はすべて、事前にわかっている一定数のクエリについて語っています。
(コーディングフリークの回答 hereから借用)
MediaWiki および StackExchange API の一部の機能など、異なるパラメーターを使用してループ内で同じページ化された Web API を呼び出すなど、それらを事前に知らない場合はどうなりますか?これらの新しい jQuery を利用する方法はありますか?この場合の機能ですか、それとも古い方法に戻る必要がありますか?
node.js - What are everyauth promises?
I don't understand what everyauth promises are.
I see that I need to return a promise object or user, but what is an everyauth promise?
node.js - mongoose Promise の使い方 - mongo
マングースで Promise を使用する方法の例を教えてください。これが私が持っているものですが、期待どおりに機能していません:
そして、myLib には次のようなものがあります。
ある時点で自分のデータが存在することを期待していますが、どうすればデータにアクセスしたり取得したりできますか?
javascript - ライブラリがすべての例外を飲み込んでいる場合、非同期の promise ベースのコードをデバッグするにはどうすればよいですか?
問題
JSFiddle : http://jsfiddle.net/missingno/Gz8Pe/2/
次のようなコードがあります。
問題は、私が IE を使用しているとき、対応する行番号への参照がなく、デバッガーが問題のある行で停止することなく、'obj' is null or not an object
エラーしか表示されないことです (私が望むように)。
この種の問題は、コードをデバッグするのが面倒であり、私が今考えることができる唯一の解決策 (制御フロー ライブラリをいじるか、デバッガーまたは console.log を使用した段階的なデバッグに頼る) は、私が考えることです。むしろしなくていい。
何が起こっていると思いますか
チェーンが起動された後にエラーバックを追加できるようにするためにthen
、コールバックによってスローされた例外を事前にキャッチします。これが、IE デバッガーがエラーで停止しないか、行番号を含む通常のエラー メッセージを表示する理由だと思います。
行番号のないエラー メッセージは、制御フロー ライブラリからのものです。これはdeferredOnError
、例外がキャッチされて後で使用できるように保存されるたびに呼び出されるフックを提供します。デフォルトの動作は、Error オブジェクトを console.error-ing することです。
悲しいことに、IE のエラー オブジェクトから行番号またはスタック トレースを取得する方法がわかりませんでした。また、例外を再スローしてトップレベルまでバブルアップさせることができない方法でフックが呼び出されました。
私が欲しいもの
非同期コードをデバッグしてから、デバッガーを段階的に使用するより良い方法が必要です。最良の場合、デバッガーを例外で停止させる方法(未処理の例外の場合と同様) 、または少なくとも、スローされた Error オブジェクトから行番号またはスタック トレースを取得する方法。
javascript - jQuery Deferred オブジェクト、関数を順番に呼び出す
jQuery の Deferred オブジェクトの使用方法について混乱しており、見た例は役に立ちません。私がやりたいことは、1.) ajax 呼び出しを介してカレンダー オブジェクトを取得し、2.) グローバル オブジェクト (MYOBJ) の一部にカレンダー データを入力し、次に 3.) MYOBJ の新しいデータをページ要素に入力することです。 . これら 3 つの関数はロジックを実装しており、これらを順番に呼び出したいと思います。
ただし、loadCalendarData() が完了するまで populateCalendar() を待機させる方法がわかりません。これ...
...明らかに間違っています。自分が何をしているのか理解できないため、壁に投げつけたバリエーションの 1 つにすぎません... :)
更新: GoldenNewby と Brian ONeil が正しく指摘しているように、loadCalendarData の最後に populateCalendar への呼び出しを貼り付けることができます。それは間違いなくうまくいくでしょう。投稿しながら考えればよかった。私の最終的な目的は、シーケンスを達成する方法を理解することだったと思います。ただし、この場合、loadCalendarData の直後に populateCalendar を呼び出さずに loadCalendarData を呼び出すシナリオは考えられないため、このソリューションは間違いなく理にかなっています。ありがとう。
multithreading - Clojure - ライブ ストリーム サーバーを構築する方法 -- 約束はありますが、それは正しい方法ですか?
ライブ ストリーミング サーバーを構築する clojure の方法を探しています。私が苦労している特定の問題は、単一のプロバイダー (Web カメラ) から未定義の数のスレッド (接続されたクライアント) に値を送信する方法です。明らかに、クライアントが接続するとき、Web カメラからの完全なビデオ ファイルには関心がありません。基本的には、ヘッダーを送信する必要があり、その瞬間に Web カメラから到着するパッケージは何でも送信する必要があります。
ストレートJavaでは、簡単だと思います。クライアントが接続するたびにアレイに接続を追加し、切断するとアレイから接続を削除し、Web カメラから新しいパッケージが到着するたびにそれをアレイ内の各エントリに送信します。配列をロックして、エントリを追加/削除するか、ループしてパケットを送信します。もちろん、同じものを clojure で作成することもできますが、これは非常に悪いことのように思えます。
メッセージ パッシング マルチスレッド アーキテクチャでは、これは同様に簡単に思えます。
clojure で考えられる唯一の解決策は、promise の遅延シーケンスを使用することです。確かにそれは機能しますが、よりクリーンなコードとより多くのclojure-zenにつながる別の方法があるかどうか疑問に思っていました:)
説明のために: Promise と Atom を使用した簡略化された問題:
データを生成する 1 つのプロバイダー関数、このデータを読み取る 1 つのスレッド。後で、この最初のスレッドからデータを取得したいが、取得できない他のスレッドがいくつか作成されます。
したがって、基本的に問題は次のとおりです。これは、この問題に取り組む正しい方法ですか?
また、ここではストリーミング メディア サーバーについて話しているので、プロバイダー機能は 1 秒あたり数万のアイテムを提供し、10 のクライアントが接続されている可能性があります。promise-system は、そのように頻繁に使用するためのものですか?
javascript - jQuery で延期された Promise をキャンセルする
DOM から要素を削除せずに promise をキャンセルするにはどうすればよいですか?
私はこのコードを実行しました:
この後、約束を取り消す方法はありますか?キャンセルしようとしているのはアニメーションではないため、両方とも機能clearQueue()
しませんでした。stop(true)
私はそれremove()
を行うべきだと見ました...しかし、要素全体を削除するのではなく、約束を止めたいだけです。
node.js - Everyauth および findUserById 内からの (twitter) oauth データへのアクセス
画像にテキストのコメントを追加できる Web サイトでユーザーを認証するeveryauth
ために使用しようとしています。express
現在、Twitter oauth API を使用してユーザーを認証しています。
現在、複数のログイン方法を CouchDB の 1 つのエントリに接続できるようにするカスタム ユーザー データベースを確立しようとしています。Twitter 経由で最初に接続するときに、新しいユーザーを DB に追加したいときに問題が発生します。次のように私の読み取りのコードfindUserById
:
findById
DBにクエリを実行するオブジェクトsaveById
のメソッドであり、everyauth によって提供されているようです。cradle
userId
私の問題はその{"name":"test"}
部分にあります。req.session.auth.twitter
これは、オブジェクトから DB にデータを追加する場所です。関数内からこれらの値にアクセスするにはどうすればよいですか?findUserById
それは可能ですか?別のアプローチはありますか?私はfindOrCreateUser関数を見ていますが、アプリをクラッシュさせずにそれを変更する方法がわかりません.Promiseの概念をまだ理解していません.
javascript - 非同期プログラミング(promises)はjavascriptでどのように実装されていますか?javascriptはUIスレッド環境ではありませんか?
JSのPromiseを使用すると、次のように非同期プログラミングを実行できます。
前のコードを書くときはいつでも、到達DoSomethingElse()
する前に到達しsuccess
ます。そんなことがあるものか?JSはシングルスレッド環境(Webワーカーを除く)ではありませんか?それはで行われsetTimeout
ますか?
scala - 「何もない」という約束は果たされない?
完了結果として "_" を渡すと、なぜ「Nothing」の Promise が完了しないのだろうか。Promise を使用して何かが終了したことを通知したいときに、これに遭遇しました。
今のところ、Promise of Unit を使用しています。これは正常に機能し、もう少し明確です。しかし、上記のコードがタイムアウト/未完了の Promise で終了するのはまだ疑問です。
これを Akka 2.0 final で実行しました。