带有多个回调的冰咖啡脚本

Gil*_*haw 10 coffeescript iced-coffeescript

当我刷新多个数据源时,我正在使用Iced coffescript和upshot js.刷新方法有两个回调一个用于成功,一个用于错误,我想等待每个调用进行回调.

我无法看到如何使用idced coffescript执行此操作而无需添加其他功能.我的问题是 - 有更优雅的方式,我可以推迟多个回调之一?

这是我目前的代码:

refreshMe = (key, value, result) =>
    value.refresh(
    (success)=>
            result success
    ,
    (fail, reason, error)=>
        result undefined, fail
    )
@refresh = () =>                
success={}
fail={}
await
    for key, value of @dataSources
    refreshMe key, value, defer success[key], fail[key]
Run Code Online (Sandbox Code Playgroud)

dev*_*ave 5

这是我发现的唯一方法.我在Backbone中使用它并使用@icedSave包装(例如)模型的@save函数:

# An IcedCoffeescript friendly version of save
icedSave: (callback) ->
    @save {},
        success: (model, response) -> callback(true, model, response)
        error: (model, response) -> callback(false, model, response)
Run Code Online (Sandbox Code Playgroud)