Coffeescript + Backbone“每个”回调函数

时间:2012-08-01 00:11:57

标签: backbone.js coffeescript

我的coffeescript / backbone app中有以下内容。问题是它在“每个”函数完成之前运行console.log(换句话说,在为每个集合完成create()之前)。我想知道的是,如果有一些类型的成功回调我可以使用,我不知道为了在创建完成后运行console.log。提前谢谢!

wishlist.each (model) ->
  id = model.get('id')
  lineitems.create({product_id: id})
console.log "do this when finished!"

1 个答案:

答案 0 :(得分:1)

我觉得你很困惑。 each上的Backbone.Collection函数不是异步的,它不会触发任何AJAX调用。 each函数实际上来自Underscore,它与异步功能无关。

获取数据的异步AJAX调用称为fetch,它确实有成功/错误回调:

wishlist.fetch
  success: -> console.log "success"
  error: -> console.log "error"

修改

好的,所以你希望在所有创作完成后执行console.log。首先,我所说的fetch对于创造是正确的。您可以添加successerror个回调。

lineitems.create {product_id: id}, 
    {success: @create_success, error: @create_error}

我会考虑为每create增加一个计数,并在每个successerror回调中递减计数。当您完成创建并且您的计数达到0时,您已经处理了所有创建,您可以回拨它。