問題タブ [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.

0 投票する
1 に答える
1555 参照

javascript - promise を使用した関数の順次実行

配列に基づいていくつかの非同期関数を順次実行したいと考えています。

私はこれがそれを行うと思った:

しかし、私は得る

望ましい結果の代わりに

ここで完全に順次実行するにはどうすればよいですか?

約束なしでそれを行う方法を知っていることに注意してください。完全な約束のソリューションにのみ興味があります。

0 投票する
2 に答える
897 参照

javascript - async.each が完了するまで約束を遅らせる方法は?

非同期操作が完了するまで promise を遅らせるにはどうすればよいですか? 私は async と bluebird ライブラリを使用しています。プログラムを起動するとすぐに、done() 関数は、空またはほぼ空の「masterlist」オブジェクトであるエラーを返します。イテレータが操作を完了するまで非同期待機しないのはなぜですか?

Firehose.js は、initializer() を呼び出すモジュールです。firehose が最初に実行され、その過程で promise が呼び出されると思います。server.js => firehose.js => bundler.js => nytimes api

助けてくれてありがとう。

0 投票する
2 に答える
9804 参照

javascript - node.js、ストリーム、promise を使用したファイルのダウンロード

ここに私のコードのスニペットがあります:

Promise を使用して FTP 経由でアイテムをダウンロードしようとしています。現時点では、最初のファイルをダウンロードしますが、後続のファイルでは失敗します。私はノードを初めて使用しますが、2番目のマップ関数が約束を返す必要があることはかなり確信していますが、何度も試行した後、どのように解決することができませんでした. 約束のために使用bluebirdしていますが、それとストリームを操作する方法がわかりません。

正しい方向に私を向けることができますか?

ありがとう

0 投票する
3 に答える
358 参照

javascript - エラーで Promise が実行される

まあ、私はすでに約束を理解していると思っていましたが、これについて何かが欠けているようです...

Redis への接続が失敗した場合、返された Promise が拒否されることが予想されます。しかし、なぜか満たされている。ここで何か不足していますか?

ブルーバードの実装を使用しています。そこに何らかのバグがある可能性がありますか?それはすべて非常によく文書化されており、理にかなっているように思えます...紙の上では。

解決済み

https://github.com/petkaantonov/bluebird/issues/156での完全な議論

0 投票する
24 に答える
280320 参照

javascript - 既存のコールバック API をプロミスに変換するにはどうすればよいですか?

promise を使用したいのですが、次のような形式のコールバック API があります。

1. DOM ロードまたはその他の 1 回限りのイベント:

2. 単純なコールバック:

3. ノード スタイルのコールバック (「nodeback」):

4. ノード スタイルのコールバックを含むライブラリ全体:

promise で API を使用するにはどうすればよいですか? API を「約束する」にはどうすればよいですか?

0 投票する
1 に答える
1212 参照

javascript - クロム拡張のrequirejsでブルーバードプロミスを作成する際のエラー

「chrome.storage.local」を利用するクロム拡張機能を開発しており、例外をスローできるようにしたい chrome.storage.local.get() 非同期関数からプロミスを作成しようとしています。拒否/解決します。以下の実装でこれをテストしようとしましたが、コンソール ログから " " 行からのものと思われるreadLocalStorageObj("prefs").then(function(item) {エラーが表示されます (エラーはコードの後に​​示されています)。

エラー:

キャッチされていない TypeError: オブジェクト関数 Promise$_method() { var value; switch(arguments.length) { ケース 0: 値 = tryCatch1(fn, this, void 0); 壊す; ケース 1: 値 = tryCatch1(fn, this, 引数[0]); 壊す; 場合......n'

私はこれの原因が何であるかを理解できないようです.これについて何か助けていただければ幸いです.

ティア

0 投票する
1 に答える
225 参照

javascript - promise の配列で「all」集約関数を使用する場合の最終ハンドラ

SQLスクリプトファイルを開いて読み取り、データベースへの接続を並行して開くコードがいくつかあります。それらが完了すると、接続でファイルの内容が実行されます。ただし、接続結果は「クローズ」する必要があります。データベース接続が成功し、ファイルの読み取りが失敗した場合 (ファイル名が間違っている可能性があります) を処理し、いずれの場合でも接続を閉じることができる必要があります。

これが私が現在使用しているコードですfinally()。クエリが成功または失敗した場合にクライアントを閉じるハンドラーがありますが、ファイルの読み取りが失敗した場合、クライアントは閉じられません。

クライアントを finally ブロックに渡す関数を少し試してみましたbind()が、その複雑さにあまり満足していません。settle()ここで役立つ可能性があると感じており、現在それで遊んでいます。

これを処理する最善の方法は何ですか?

0 投票する
2 に答える
1933 参照

javascript - 解決時に未処理のエラーをスローすることを約束する

以下のコードがありますが、解決が呼び出されるとスローされます:

以下のコード:

理由はありますか?