//再帰のループ (function recur(i=1){ setTimeout(()=>{ cons […]
//再帰のループ (function recur(i=1){ setTimeout(()=>{ cons […]
//再帰のループ
(function recur(i=1){
setTimeout(()=>{
console.log(`${i}s recur`);
if(i<10) recur(i+1);
},1000);
})();
//Promiseでラップする
function sleep(seconds){
return new Promise(
function(resolve,reject){
setTimeout(function(){
return resolve();
},seconds);
}
)
}
//以下は上のものと大体同じ(rejectはエラーがある場合resolveの代わりに使用。tryでcatchさせられる。)
//const sleep=s=>new Promise(res=>setTimeout(res,s));
//const sleep=require("util").promisify(setTimeout);
//async関数の返り値はPromiseでラップされる。
(async function(){
for(let i=1;i<=10;i++){
await sleep(1000);
console.log(`${i}s async`);
}
})();