javascriptの asyc function はPromiseを返す

説明するより、コードを見たほうがわかりやすい。

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で呼ぶ事ができるようにこうなっている。