説明するより、コードを見たほうがわかりやすい。
async function sleep3() {
console.log("start");
await sleep(3);
console.log("end");
}
// これはPromiseを返す
async function sleep(n) {
for(var i=0; i<n; i++) { await sleepOne(); }
}
function sleepOne() {
return new Promise(resolve => setTimeout(resolve, 1000));
}async関数からasync関数をawaitで呼ぶ事ができるようにこうなっている。