問題タブ [bluebird]
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.
promise - Bluebird、Promise.bind - 保留中の約束でバインドされたコンテキストにアクセスする方法は?
誰かがPromise.bind()
プロミスチェーンでコンテキストを持つことができるようにブルーバードで私を指摘しました。
ただし、私のユース ケースでは、promise オブジェクト (then
およびcatch
API を持つオブジェクト) への参照しかない場合に、このコンテキストを「外部から」使用する必要があります。
それは可能ですか?
javascript - Promise / bluebird.js でのエラー処理
then
エラー処理のコンテキストでのこれらの呼び出しの違いは何ですか?
最初の例では、関数functionThatReturnsPromise
が をスローした場合error
、catch ブロックは呼び出されず、bluebird はエラーを出力します。
javascript - ネストされた約束がぶら下がるのを防ぐ方法は?
次のコードは機能しますが (ユーザー オブジェクトがコンソールに書き込まれます)、プロセスは終了しません。約束の1つを解決してはいけないと思いますか?
このコードの何が問題になっていますか?
cordova - Bluebird を使用して cordova プラグインを promise に変換する
私は、コルドバプラグインの呼び出しをブルーバードの約束に変えるためのエレガントな解決策を見つけようとしていますが、次のようなことをするよりも良い方法があるかどうか疑問に思っていました:
コルドバ プラグイン関数「貼り付け」はコールバック関数を受け取り、そのコールバックで約束を解決または拒否しています。これよりも良い方法はありますか?
javascript - ブルーバードのネストされたプロミス
ブルーバード ライブラリでプロミスを正しく使用する方法を理解しようとしています。私は自分のコードでいくつかの入れ子になった約束に出くわしました.bluebirdのドキュメントで次のように書かれていることに気付きました:
完全な bluebird API オファリングを利用している場合、最初からネストされた promise に頼る必要はほとんどありません。
Promise の誤用については他にも多くのブログ記事があり、ネストは通常のアンチパターンです。
私の関数はすべてオブジェクトを返します。bluebird のドキュメントを見ると、複数のヘルパー メソッドがあるようです: all()、join()、props()。
だから、私の質問は次のとおりです。依存関係がある場合、ネストを回避するにはどうすればよいですか? おそらく、これはプロミスの非同期性に関する私の誤解です。このようなものは機能しますか?
node.js - nodejs、postgres、および bluebird
私は pg ライブラリで bluebird の約束を使用しようとしてきましたが、この投稿を見つけましたが、悲しいことに、私は StackOverflow ユーザーに慣れていないため、そこに直接コメントすることはできません。
簡単に言えば、そのコードのカット アンド ペーストを行った後に bluebird Promisfy 関数で試したすべてのことは、クエリ コンストラクターのいずれも取得しません。私が試したすべての結果が次のようなバリエーションになるため、これが迅速かつ簡単な助けになることを願っています。
PromisfyAll 関数の結果をダンプしましたが、十分な queryAsync が存在しないことを確認してください。
関連スニペット:
解析で関連する関数を見つけますが、クエリを約束しません:これをさらにトラブルシューティングする方法や、ClientAsync で SQL クエリを実行するための潜在的な構文を知っている人はいますか? Bluebird github ページの情報から pg query.js ファイルを手動で追加しようとしましたが、役に立ちませんでした。
javascript - Promise 関数は、異なるスコープで異なる動作をします
promise と mongoskin を使用して単純なクエリ関数を作成しました。使用入力に基づいてその場でクエリをテストしたいと考えています。
問題は、関数getUserが異なるコンテキストで異なる動作をすることです。なぜこれが起こっているのかについてのアイデアはありますか?
これが私のコードです:
PS: 私はすでにmongoskinモジュール を約束しました
PS2: コールバックのsuccess、failは、console.log() によってエラーを出力しているだけです...
PS3: bluebird promise を使用しており、完全なコードが更新されています
javascript - bluebird の「処理されていない可能性があるエラー」という警告は、どのような状況で間違っている可能性がありますか?
「おそらく」という言葉は、自分でエラーをキャッチしたとしても、コンソールでこの警告が表示される状況があることを示唆しています。
それらの状況は何ですか?
node.js - Mongoose との接続時の競合状態
これにより、返されるドキュメントの数がランダムであり、コレクション内の完全な数に満たない競合状態が発生します。find
ただし、遅延 (たとえば 3 秒) でラップすると、すべてのドキュメントが取得されます。しかし、「オープン」イベントを待っていれば、そのような競合状態に陥ることはないだろうという印象を受けました。私はBluebirdの約束を使用していますが、約束を放棄してコールバックのみを使用すると、同じ結果が得られます。
私は何を間違っていますか?