ホームページ > ウェブフロントエンド > jsチュートリアル > 非同期 Promise が最初に保留状態を示すのはなぜですか?

非同期 Promise が最初に保留状態を示すのはなぜですか?

Linda Hamilton
リリース: 2024-12-12 11:11:09
オリジナル
514 人が閲覧しました

Why Do Asynchronous Promises Initially Show a Pending State?

非同期 Promise が最初に保留状態を表示する理由

コードには Promise を使用した非同期関数が含まれていますが、Promise 内のトークンにアクセスしようとすると、解決済みではなく「Promise { }」が表示されるtoken.

Promise の解決と保留状態

Promise は、完了までに時間がかかる可能性のある操作を表し、操作が解決されたとき (正常に完了したとき) に操作の結果を処理する方法を提供します。 )または拒否(失敗)します。最初、Promise は操作が完了するまで保留状態になります。

Promises の連鎖: 遅延解決

コードでは、google.login から Promise を返します。すぐにトークンにアクセスしようとすると、Promise はまだ保留中です。まだ解決していません。これは、保留状態を Promise { として受け取ることを意味します。 }.

Promise 結果のキャプチャ

Promise の解決された値を取得するには、その .then メソッドまたは .catch メソッドを使用する必要があります。これらのメソッドは、Promise がそれぞれ解決または拒否されたときに実行されるハンドラーを提供します。 .then ハンドラーをチェーンすることにより、Promise の解決された値に基づいてアクションを実行できます。

例: Promise 値のキャプチャ

let AuthUser = function(data) {
  return google.login(data.username, data.password).then(token => { return token } )
}

let userToken = AuthUser(data)
console.log(userToken) // Promise { <pending> }

userToken.then(function(result) {
   console.log(result) // "Some User token"
})
ログイン後にコピー

この例では、.then ハンドラーをAuthUser によって返された Promise。ハンドラーは、Promise が解決されるときに実行され、解決された値をパラメーターとして受け取ります。 .then 内の console.log ステートメントは、実際のユーザー トークンを出力します。

結論

Promise は、非同期操作を処理する構造化された方法を提供します。 Promise の解決された値にアクセスするには、それを .then または .catch ハンドラーでチェーンする必要があります。 Promise が解決された後にのみ、解決された値をコードで使用できるようになります。

以上が非同期 Promise が最初に保留状態を示すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート