Skip to content

Instantly share code, notes, and snippets.

@skyriser
Created June 14, 2012 08:16
Show Gist options
  • Save skyriser/2928959 to your computer and use it in GitHub Desktop.
Save skyriser/2928959 to your computer and use it in GitHub Desktop.
jQuery Deferredの簡単な使い方
# 複数のAjax通信を行って全ての結果がそろったら次の処理を実行したい等の場合
# Ajax処理
somethingAjax1: ->
dfd = $.Deferred()
$.getJSON '/something.json', {'param': param }, (data) =>
# dataを使った処理をする
# 無事完了したらresolve()
dfd.resolve()
.error ->
# 通信に失敗しちゃったらreject()
dfd.reject()
# 後でやるよ!という"約束"をする
return dfd.promise()
# somethingAjaxの処理が終わってから以下が実行される
main: ->
$.when(
@somethingAjax1()
@somethingAjax2()
@somethingAjax3()
)
.done () =>
# 全てresolveされればdoneが実行される
alert '成功したよ!'
.fail () =>
# 1つでもrejectされればdoneではなくfailが実行される
alert 'しっぱいしっぱい><'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment