//再帰のループ (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`);}})();