【node.js】サーバサイドjavascript 3【io.js】©5ch.net
■ このスレッドは過去ログ倉庫に格納されています
0062デフォルトの名無しさん
2015/01/05(月) 23:31:48.05ID:xBMPeqox> 調べもせずに適当な事言うなよ
調べて言ってるけど?
まずは仕様
https://html.spec.whatwg.org/multipage/webappapis.html#timers
"timer initialisation steps"の10で"Return handle, and then continue running this algorithm in parallel."
となっていて、コールバックが呼び出されるのは14の"Queue the task task."によってだ
そしてNodeの実装
https://github.com/joyent/node/blob/v0.10/lib/timers.js#L194
203行目でTimeoutオブジェクトを作って225行目でactive()に渡してる
175行目からのactive()はリストにTimeoutオブジェクトを追加してるだけ
どうやってもsetTimeout()がreturnする前にコールバックが呼ばれることはない
> 少なくともsetTimeout()は絶対違う
その根拠は? お前は主張するばっかで根拠は何も示さないのな
>>61
> 捕捉するがタイムアウト時間を1msとかにすれば、99.9%実用上問題無いだろう
> だが「確実」に非同期にするという事とは全く意味が違う
お前「非同期」の意味わかってる? タイムアウト時間は非同期とは一切関係ないぞ
setTimeout()は常にコールバックを非同期に実行する
ただしコールバックが実行されるまでの時間は指定したとおりになるとは限らないだけだ
特にネストした呼び出しでは0〜3msを指定しても最低4msは待たされる(上の仕様に書いてある)
だが常に非同期だ
■ このスレッドは過去ログ倉庫に格納されています