プロミスからデータを返す方法 [重複]について
2023-09-03 17:28:50
質問
を取得する必要があります。
response.data
をプロミスから取り出して、それを囲む関数で返せるようにする必要があります。通常のJavaScriptのスコープのため、私がコード化した方法ではおそらくできないことは分かっています。何か方法はありますか、それはできるのですか?
その console.log を #1 で実行すると、正しいデータが生成されます。 コンソール.ログ #2は常に'a'を生成します。
function addSiteParentId(nodeId) {
var theParentId = 'a';
var parentId = relationsManagerResource.GetParentId(nodeId)
.then(function(response){
theParentId = response.data;
console.log(theParentId); // #1
});
console.log(theParentId); // #2
return theParentId;
}
何かご指摘があればお願いします。
どのように解決するのですか?
プロミスの基本原則の1つは、非同期で処理されることです。つまり、プロミスを作成し、その結果をコード内ですぐに同期的に使用することはできません(例えば、プロミスを開始した関数内からプロミスの結果を返すことは不可能です)。
代わりに行いたいことは、おそらく
プロミスそのものを返すことです。
それから、その結果を必要とするどんな関数でも
.then()
を呼び出すことができ、その結果はプロミスが解決されたときにそこにあります。
HTML5Rocks のリソースで、プロミスのライフサイクルと、その出力がどのように非同期で解決されるかについて説明しています。
https://web.dev/promises/
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] ExtJS 4のイベントハンドリングについて
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] javascript includes() 大文字小文字を区別しない
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] javascriptでオプションのパラメータを扱う
-
[解決済み] JavaScriptのArray.sort()メソッドでシャッフルするのは正しいのか?