[解決済み] Promiseから複数の値を正しく返すには?
2022-11-14 20:45:53
質問
最近、ある状況に何度か遭遇したのですが、適切な解決方法が分かりませんでした。以下のようなコードを想定してください。
somethingAsync()
.then( afterSomething )
.then( afterSomethingElse )
function afterSomething( amazingData ) {
return processAsync( amazingData );
}
function afterSomethingElse( processedData ) {
}
さて、ある状況下で、私は
amazingData
で
afterSomethingElse
.
明らかな解決策は
afterSomething
なぜなら、関数からは1つの値しか返せないからです。というのも、関数からは1つの値しか返せないからです。
afterSomethingElse
が2つのパラメータを受け取り、同様にそれを呼び出す方法があるかどうか、それは文書化し理解するのがずっと簡単に思えるからです。
があるので、私はこの可能性について疑問に思っているだけです。
Q.spread
があり、これは私が欲しいものと似たようなことをします。
どのように解決するのですか?
関数から複数の値を返せないのと同じように、複数のプロパティを持つプロミスを解決することはできません。 . プロミスは概念的に時間をかけて値を表すので、複合的な値を表すことはできても、複数の値をプロミスに入れることはできないのです。
プロミスは本質的に単一の値で解決します。これはQの動作の一部です。 Promises/A+の仕様がどのように機能するか そしてどのように 抽象化 がどのように機能するのかを説明します。
最も近いのは
Q.spread
を使って配列を返すか、サポートされている場合はES6 destructuringを使うか、BabelJSのようなトランスパイルツールを使用することです。
プロミスの連鎖でコンテキストを渡すことに関しては、以下を参照してください。 Bergiの素晴らしいcanonicalを参照してください。 .
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] JavaScriptでクエリ文字列の値を取得するにはどうすればよいですか?
-
[解決済み] JavaScriptで複数の値を返す?
-
[解決済み] 2つのJavaScriptオブジェクトの等質性を判断する方法は?
-
[解決済み] 明示的なプロミス構築のアンチパターンとそれを回避する方法とは?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] javascriptでオプションのパラメータを扱う
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] .then()チェーンで以前のプロミス結果にアクセスするにはどうすればよいですか?
-
[解決済み] プロミスはonFulfilledに複数の引数を持つことができますか?
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] AJAX Mailchimp サインアップフォームの統合
-
[解決済み] イテレータでmap()を使用する
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]
-
[解決済み] 変異を伴わないオブジェクトからの値の削除