【发布时间】:2014-04-07 09:37:12
【问题描述】:
我有一个异步函数,它可以递归到自身。
每次函数运行时,我都会将 jQuery 延迟添加到数组中,并使用 $.when() 检查是否所有承诺都已解决。我的问题是,如果没有任意超时,我似乎无法执行此操作,因为我根本不知道函数何时停止递归并添加新的 Promise。
【问题讨论】:
-
可能是我想多了,用setTimeout/clearTimeout可以解决,不过我还是对其他方法感兴趣。
-
函数本身是否知道何时完成?您可以在开始时将
recursionComplete延迟添加到数组中,并且仅在完成后解决。 -
不,该函数不知道何时完成。它读取文件系统树并且总是可以遇到新的目录/文件。
-
您知道何时将您的最后一个
promise添加到promises吗?如果是这样,您就不能从那时开始开始检查吗,like this? -
你有没有想过在任务之后使用回调?
标签: javascript jquery asynchronous promise deferred