問題タブ [es6-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.
javascript - babel および ES6 promise で async await を使用すると promise を解決できません
非同期関数を含む次のノード アプリがあり、ES6 の約束を待っています。
結果 = 値: 未定義
期待される結果: 値: 1
これを gulp-babel を使用して ES5 にコンパイルします。
私はgulpタスク内に次のセットを持っています:
npmがbabelをインストールした後、「babel / polyfill」でも必要です。
トランスパイルされたコード:
javascript - Promise.catch ハンドラー内でスローできないのはなぜですか?
catch コールバック内で単にスローしError
て、他のスコープにあるかのようにプロセスにエラーを処理させることができないのはなぜですか?
私が何もしなければ、console.log(err)
何も印刷されず、何が起こったのかわかりません。プロセスはすぐに終了します...
例:
コールバックがメイン スレッドで実行される場合Error
、ブラック ホールに飲み込まれてしまうのはなぜですか?
javascript - bluebird を使用した一連の約束の連鎖
私は約束を守って自分のやり方で取り組んでおり、ユースケースにこだわっています。トランスフォーマー関数の配列があります (各関数はプロミスであり、JSON 構造を変更します)。
いくつかのコードを示しましょう。
これが私のJSON構造(配列)だとしましょう
transformFunction
特定の方法でデータを変更する変換関数の定義です。2 つの関数は、上記の JSON 構造にプロパティc
とプロパティを追加します。d
UI ユーザーからの は、使用するトランスフォーマー関数とその順序を指定します。彼が次のような通常の順序を選択したとしましょう。
メソッドはtransform1
データを変更し、結果をメソッドに渡す必要がありますtransform2
。
私は見ていました:Promise.all
しかし、それはプロミスの順序を気にしていないようで、最も重要なことは、前の結果を次のプロミスに渡す必要があることです。
javascript - Nodejs Promise.all() は常に解決します
私は約束が初めてです。一部のマシンに ping を実行して、それらがアクティブかどうかを確認しようとしています。ネイティブ NodeJS の約束を使用しています。私のping機能:
これで、JSON から読み取った配列内のマシンの詳細が得られました。
一部のノードがダウンしていても拒否されなくなりました。
javascript - JavaScript es6 で Promise をプロキシする方法
Proxy a Promise をネイティブ Firefox (および Babel を使用) で実行しようとしています。
これは機能しません。「TypeError: 'then' called on an object that not implement interface Promise.」というメッセージが表示されます。
javascript - Node.js ネイティブ Promise.all 処理は並列ですか、それとも順次ですか?
ドキュメントはそれについてあまり明確ではないので、この点を明確にしたいと思います。
Q1:すべてのプロミスはPromise.all(iterable)
順次処理されますか、それとも並列処理されますか? または、より具体的には、チェーンされたプロミスのような実行と同等ですか
または、すべてが同時に(並行して)呼び出され、すべてが解決(または拒否)されるとすぐに結果が返される、他p1
の種類のアルゴリズムですか?p2
p3
p4
p5
Q2:並列で実行する場合Promise.all
、イテラブルを順次実行する便利な方法はありますか?
注: Q や Bluebird は使用したくありませんが、すべてのネイティブ ES6 仕様を使用します。