Skip to content

Instantly share code, notes, and snippets.

@a-suenami
Forked from skyriser/ajax_sample.coffee
Created November 28, 2012 08:27
Show Gist options
  • Save a-suenami/4159873 to your computer and use it in GitHub Desktop.
Save a-suenami/4159873 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