找到了自己,這對我的作品(CoffeeScript中,Object.clone是Sugar.JS):
tokenReloadPromise = null
$.ajaxPrefilter (options, userOptions, xhr)=>
if tokenReloadPromise?
xhr.abort()
tokenReloadPromise.then ->
options.noTokenRefresh = true
$.ajax(options)
else
originalOptions = Object.clone(options)
# configure access token for request here
unless options.noTokenRefresh == true
options.error = (xhr)->
if xhr.status == 401
tokenReloadPromise ?= new jQuery.Deferred
tokenReloadPromise.then ->
originalOptions.noTokenRefresh = true
$.ajax(originalOptions)
App.execute "refresh:access_token", ->
promise = tokenReloadPromise
tokenReloadPromise = null
promise.resolve()
else
originalOptions.error.apply(this, arguments)
true