我正在尝试获取集合x
次,每次都递增一个计数器。我遇到的问题是,因为我需要在回调中呈现一个视图,并且由于.fetch()
是异步的,所以我不能简单地执行一个javascript循环。我想以某种方式在success
回调中告诉它再次调用自己,而不会陷入无限循环。
这就是我所拥有的:
@collection.fetch
data: {q: letters, i: i}
success:
@renderList()
如何在x
次之前运行i
次,每次增加@renderList
,等到@collection.fetch
data: {q: letters, i: 1}
success:
@collection.fetch
data: {q:letters, i:2}
success:
@collection.fetch
data: {q:letters, i:3}
完成后才再次运行?
更新
所以,我正在取得进展 - 这似乎有效,但看起来很糟糕:
Uncaught TypeError: object is not a function
此外,成功回调是在控制台中给我这个警告:
{{1}}
么?
答案 0 :(得分:1)
也许尝试像这样的递归函数(这是唯一的例子):
recursiveFetch = (collection, successCallback, counter, data) ->
if counter == 0
successCallback()
return
data.i = counter
collection.fetch
data: data
success: -> recursiveFetch(collection, successCallback, counter-1, data)
并将其称为:
recursiveFetch(@collection, => @renderList(), i, {q:letters})