asyncはなぜ予約語なのか
awaitがあったらasync functionと見なす
→「awaitのないasync function」が書けなくなる?
返り値がPromiseだったらasync functionと見なす
静的型付けではないので、「返り値の型で判断する」わけにはいかない
code:js
function f1() { return 123 }
async function f2() { return 123 }
function f3() { return Promise.resolve(456) }
async function f4() { return Promise.resolve(456) }
(async function(){
console.log("直接呼んだとき");
console.log(f1());
console.log(f2());
console.log(f3());
console.log(f4());
console.log("\nawaitしたとき");
console.log(await f1());
console.log(await f2());
console.log(await f3());
console.log(await f4());
})()
code:txt
直接呼んだとき
123
Promise { 123 }
Promise { 456 }
Promise { <pending> }
awaitしたとき
123
123
456
456
kakkun61.icon👍️