非同期関数と戻り値
問題は、非同期関数は、値を返しているにもかかわらず、戻り値が返されていないため、そうでないように見えることが多いことです。という約束に包まれています。最終値にアクセスするには、
1 の 2 つのオプションがあります。 Promise チェーン
Promise の .then() メソッドをチェーンして、最終値を取得できます:
<code class="javascript">let allPosts = new Posts('https://jsonplaceholder.typicode.com/posts'); allPosts.init() .then(d => { console.log(allPosts.getPostById(4)); // Here you can return the value as needed });</code>
2。 Async/Await
非同期関数内では、await を使用して関数の実行を一時停止し、Promise が解決されるまで待つことができます。
<code class="javascript">async function myFunc() { const postId = 4; await allPosts.init(); // This is logging the correct value console.log('logging: ' + JSON.stringify(allPosts.getPostById(postId), null, 4)); // Return the result using await return allPosts.getPostById(postId); } myFunc() .then(result => console.log(result)) .catch(error => console.error(error));</code>
このようにして、次のことができます。コードの非同期の性質を正しく処理して、getPostById(id) の値を返す関数を作成します。
以上がPromise でラップされているにもかかわらず、非同期関数からの戻り値にアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。