1

我的咖啡脚本/骨干应用程序中有以下内容。问题是它在“每个”功能完成之前运行 console.log (换句话说,在它完成为每个集合执行 create() 之前)。我想知道的是,是否可以使用某种我不知道的成功回调,以便在创建完成后运行 console.log。提前致谢!

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

1 回答 1

1

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

获取数据的异步 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 时,您已经处理了所有创建,您可以将其回调。

于 2012-08-01T00:29:50.283 回答