timer, sleepの実装(setTimeout, setInterval)

JavaScriptでタイマー処理、スリープ処理を実装する方法について取り上げます。

Timer

一定時間後に処理
( setTimeout, clearTimeout )

setTimeout で一定時間後に処理を実行させることができます。

const output = () => console.log(`output: ${new Date().getSeconds()} 秒`)

console.log(`${new Date().getSeconds()} 秒`)
setTimeout(output, 3000)
console.log(`${new Date().getSeconds()} 秒`)
55 秒
55 秒
output: 58 秒

setTimeout で設定した処理をキャンセルするには、clearTimeout を利用します。

const output = () => console.log(`output: ${new Date().getSeconds()} 秒`)

console.log(`${new Date().getSeconds()} 秒`)
const timeoutId = setTimeout(output, 3000)
clearTimeout(timeoutId)
console.log(`${new Date().getSeconds()} 秒`)

一定時間ごとに処理
( setInterval, clearInterval )

setInterval で一定時間ごとに処理を実行させることができます。

const output = () => console.log(`output: ${new Date().getSeconds()} 秒`)

console.log(`${new Date().getSeconds()} 秒`)
setInterval(output, 1000)
console.log(`${new Date().getSeconds()} 秒`)
1 秒
1 秒
output: 2 秒
output: 3 秒
output: 4 秒
output: 5 秒
    :

setInterval で設定した処理をキャンセルするには、clearInterval を利用します。

const output = () => console.log(`output: ${new Date().getSeconds()} 秒`)

console.log(`${new Date().getSeconds()} 秒`)
const intervalId = setInterval(output, 1000)
setTimeout(() => clearInterval(intervalId), 3000)
console.log(`${new Date().getSeconds()} 秒`)

Sleep
( async, awaitを利用 )

async await を利用すると、以下のように可読性の良いsleep処理を実装することができます。

(async () => {
  const sleep = (second) => new Promise(resolve => setTimeout(resolve, second * 1000))

  console.log('start')
  console.log(`${new Date().getSeconds()} 秒`)

  await sleep(1)
  console.log(`${new Date().getSeconds()} 秒`)

  await sleep(2)
  console.log(`${new Date().getSeconds()} 秒`)

  await sleep(3)
  console.log(`${new Date().getSeconds()} 秒`)

  console.log('end')
})()
start
11 秒
12 秒
14 秒
17 秒
end

参考

【エンジニア向け】仕事を見つける方法

転職する

転職エージェントを活用する

転職サイトの場合、自身でサイト上から企業を探す必要があります。 一方「レバテックキャリア」 などの転職エージェントの場合、エージェントが企業を紹介してくれます。エージェントが間に入ることにより、日程調整や、条件交渉などもサポートしてくれます。

転職ドラフトを活用する

転職ドラフト」は、 企業がITエンジニアをドラフトという形で指名するサービスです。年収が最初に提示されるなどのメリットがあります。 ただ、初回登録時にレジュメ作成が必要で、すでにエンジニア経験が豊富にあるエンジニア向けのサービスかと思います。 レジュメ作成が手間ですが、自身のキャリアを見直す機会になり、他の仕事探しにも役立つはずです。

エンジニア転職保証のあるスクールを活用する

ある程度、開発経験のあるかたであれば、独学で必要なスキルを身につけることができるはずです。ただ、別業種からエンジニアに転職したい場合など、1から独学で学ぶのはハードルが高いです。そういった方は、スクールの活用を検討しても良いと思います。 「TechAcademy」は、エンジニア転職保証コースを提供しています。給付金制度の対象講座として認定されているため、金銭面の負担も抑えることができます。

フリーランスとして活動する

レバテックフリーランス」「ITプロパートナーズ」「ギークスジョブ」は、フリーランスエージェントサービスです。 エージェントによって、支払いサイトなど細かい違いはありますが、まずは良い案件を見つけることが重要です。 登録自体は無料なので、複数エージェントに登録して、より多くの案件を紹介してもらうのがおすすめです。

logo
わくわくBank.
技術系の記事を中心に、役に立つと思ったこと、整理したい情報などを掲載しています。