コードには Promise を使用した非同期関数が含まれていますが、Promise 内のトークンにアクセスしようとすると、解決済みではなく「Promise {
Promise は、完了までに時間がかかる可能性のある操作を表し、操作が解決されたとき (正常に完了したとき) に操作の結果を処理する方法を提供します。 )または拒否(失敗)します。最初、Promise は操作が完了するまで保留状態になります。
コードでは、google.login から Promise を返します。すぐにトークンにアクセスしようとすると、Promise はまだ保留中です。まだ解決していません。これは、保留状態を Promise {
Promise の解決された値を取得するには、その .then メソッドまたは .catch メソッドを使用する必要があります。これらのメソッドは、Promise がそれぞれ解決または拒否されたときに実行されるハンドラーを提供します。 .then ハンドラーをチェーンすることにより、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 サイトの他の関連記事を参照してください。