ホームページ >ウェブフロントエンド >jsチュートリアル >非同期 JavaScript で Promise 解決を効果的に処理するにはどうすればよいですか?
非同期関数は、タスクを同時に実行し、操作の結果を表す Promise を返すことでノンブロッキング処理を可能にします。ただし、適切な処理を行わずに実行すると、非同期関数は Promise {
提供されたコード スニペットでは、AuthUser 関数は google.login 関数の結果を表す Promise を返します。ただし、その後の userToken = AuthUser(data) での AuthUser の呼び出しでは、解決の処理にコールバックが使用されないため、未解決の Promise が生成されます。
Promise の結果をキャプチャするには、 .then または .catch メソッドを Promise に添付する必要があります。これらのメソッドを使用すると、Promise の解決または拒否をそれぞれ処理できます。
次の変更により、コールバック内の userToken Promise の値がキャプチャされます。
let userToken = AuthUser(data); userToken.then(function(result) { console.log(result); // "Some User token" });
Promise は本質的に前向きです。解決されると、Promise の現在の状態に関係なく、結果は .then または .catch ハンドラーに渡されます。次の .then ハンドラーは、前の .then で返された連鎖 Promise の解決された値を常に受け取ります。
戻り値:
initPromise() .then(function(result) { console.log(result); // "initResolve" return "normalReturn"; }) .then(function(result) { console.log(result); // "normalReturn" });
Promiseチェーン:
initPromise() .then(function(result) { console.log(result); // "initResolve" return new Promise(function(resolve, reject) { setTimeout(function() { resolve("secondPromise"); }, 1000) }) }) .then(function(result) { console.log(result); // "secondPromise" });
これらの原則に従うことで、非同期操作を効果的に処理し、その解決された値を取得できます。
以上が非同期 JavaScript で Promise 解決を効果的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。