ホームページ >ウェブフロントエンド >jsチュートリアル >非同期関数が即値ではなく保留中の Promise を返すのはなぜですか?
非同期関数が値ではなく保留ステータスの Promise を返すのはなぜですか?
コードでは、以下を呼び出す非同期関数 AuthUser が定義されています。 google.login() を実行し、それが生成する Promise を返します。関数が呼び出されると、結果がまだ解決されていないため、Promise は保留ステータスでログに記録されます。
解決策:
Promise の解決された値にアクセスするには、まだ保留中の場合でも、.then() でチェーンする必要があります。例:
AuthUser(data) .then((token) => { console.log(token); // "Some User token" });
詳細:
Promise は一方向の操作です。解決されると、値は状態 (解決済みまたは保留中) に関係なく .then() または .catch() メソッドに渡されます。 .then() の戻り値は、Promise の解決された値です。
提供されたコードでは、AuthUser は Promise を直接返し、.then() が呼び出されるまでその解決された値は使用できなくなります。
追加の洞察:
以上が非同期関数が即値ではなく保留中の Promise を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。