JSDeferredの動作について
なんかFirefox3.08で試すと他のブラウザと挙動が異なる。
以下コード。
<script type="text/javascript"> //<![CDATA[ Deferred.define(); next(function () { alert("1"); }). next(function () { alert("2"); // child Deferred return next(function () { alert("3"); }); }). next(function () { alert("4"); }); alert("0"); //]]> </script>
Firefox3.08
1,2,3,4,0 の順に表示される。
IE7、IE6(MultipleIEs)
0,1,2,3,4 の順に表示される。
Win Safari3.2.1
0,1,2,3,4 の順に表示される。
Google Chrome1.0.154.53
0,1,2,3,4 の順に表示される。
Opera9.64
0,1,2,3,4 の順に表示される。
なんでかな!?
追記
同僚に教えてもらった。
JSDeferredの内部で使用している、setTimeoutが影響しているそうな。
今度調べてみる。