非非同期から非同期を呼び出す
f
という「通常の」関数があります。async
関数wait()
を呼び出して、f
の中でその結果を使用するにはどうすればよいですか?
async function wait() {
await new Promise(resolve => setTimeout(resolve, 1000));
return 10;
}
function f() {
// ...what should you write here?
// we need to call async wait() and wait to get 10
// remember, we can't use "await"
}
追伸。このタスクは技術的には非常に簡単ですが、この質問は非同期/待機に慣れていない開発者には非常に一般的です。
内側の仕組みを知っていると役立つ場合があります。
async
呼び出しをプロミスとして扱い、.then
を添付するだけです
async function wait() {
await new Promise(resolve => setTimeout(resolve, 1000));
return 10;
}
function f() {
// shows 10 after 1 second
wait().then(result => alert(result));
}
f();