質問: 非同期関数は暗黙的に Promise を返しますか?
JavaScript では、非同期関数は async キーワードを使用して宣言され、自動的に返されると考えられています。返す約束。ただし、これにより潜在的な矛盾が生じます。Promise 以外の値が明示的に返されると、関数はその値を Promise でラップしているように見えます。
答え: すべての非同期関数は Promise を返します
観察された動作は正しいです。すべての非同期関数は暗黙的に Promise を返します。具体的には:
例:
async function increment(num) { return num + 1; } // Logs 4, as the returned promise resolves to 4. increment(3).then(num => console.log(num));
ラッピング動作:
このラッピング動作はジェネレーター関数に固有です。たとえば、ジェネレーター関数も Promise を返しますが、その方法は異なります:
function* foo() { return 'test'; } // Logs an object, not "test". console.log(foo()); // Logs 'test' by explicitly calling .next() on the generator function. console.log(foo().next().value);
以上が非同期関数は常に Promise を返しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。