javascriptで実行待ちの場合、setTimeout使えばいいんですがいちいちコールバック関数として引き渡してやる必要があるのでたとえば2秒待った後に1秒待つ、といったように実装する際、コールバックがネストし、見ていてやるせないコードになります。 (そんな設計するのがそもそも悪いってのもあるかもしれませんが) 例えばこんな感じ。 setTimeout(function(){ // 2000ms 待った後に実行されるコールバック setTimeout(function(){ // 1000ms 待った後に実行されるコールバック // その何秒後かにまた実行するコードを書くとさらにネストが下がっていく... },1000); },2000); ネストが2個とかそこらならまだ許容範囲かもしれませんが、 どうせならJQuery.Deferredを使ってネストをあまり下げないように書いてしまい