Skip to content

Instantly share code, notes, and snippets.

@oieioi
Last active August 29, 2015 14:02
Show Gist options
  • Save oieioi/407d40ebd7eed95ec044 to your computer and use it in GitHub Desktop.
Save oieioi/407d40ebd7eed95ec044 to your computer and use it in GitHub Desktop.
Backbone.Modelで非同期で直列リクエストさせたい
class AsyncSeriesModel extends Backbone.Model
# 非同期で直列リクエストする
lastRequest = new $.Deferred().resolve()
sync: ->
argRaw = arguments
# 呼び出し元に返却するdeferredオブジェクト
dfd = new $.Deferred
# 前回リクエスト分が解決するのを待つ
lastRequest.then(
# 目的のリクエストを発行する
=> Backbone.sync.apply @, argRaw
=> Backbone.sync.apply @, argRaw
).then(
-> dfd.resolve arguments...
-> dfd.reject arguments...
)
# 次の非同期リクエストのために前回リクエストを入れ替える
lastRequest = dfd
dfd.promise()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment