LoginSignup
2
0

More than 5 years have passed since last update.

Node.jsでsetTimeoutしたら戻り値がtimerIdじゃなかった件

Last updated at Posted at 2018-12-28

Node.jsの熟練者の人は常識かもしれませんが。。。。

きっかけはJSON.stringify()

Node.jsでJSON.stringify()を使うことがあったんですよ。
そしたらJSON.stringify()からエラーが発生するんです。

(node:9372) UnhandledPromiseRejectionWarning: TypeError: Converting circular structure to JSON

なんだこれって思ってググっても、循環させるなって書いてあるんです。
別に循環させてるところなんてないし、なんでだろう、なんでだろうって思ってログ出してみたんです。
そしたら、ある一つの要素にsetTimeoutの戻り値いれてたところがあったんですが、数値じゃなくてオブジェクトだったんです!!!

Node.jsでsetTimeoutしたら戻り値がTimeoutクラスだった

フロント周りやっているとsetTimeoutの戻り値ってtimerIdだって思っているじゃないですか。
clearTimeoutで使用するために戻り値保持してたんです。
よくよく調べるとTimeoutクラスっていうのが返ってきてるらしいです。

普通に使ってれば、意識することないかもしれないですが、JSON.stringify()時はエラーがでるので気をつけて!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0