非同期処理で動く関数setTimeoutでハマり
特に使用場面があったわけではないのですが、記事タイトルの仕様をサクッと実装しようとしたらNode.js初心者的にはまったので自分用にメモ。
let index = 2; // process.argvが受け取る配列のうち、最初の二つは「node」と、「index.js」なので、3つ目から始める
function printByOneSecond(array) { // 受け取った配列の各要素を、1秒ごとにコンソールに表示する関数
setTimeout(() =>{ // setTimeout(param1: 関数, param2: タイムアウトする時間)
console.log(array[index]);
index++;
if (index < array.length) {
printByOneSecond(array)
}
}, 1000);
}
printByOneSecond(process.argv);