【发布时间】:2014-06-03 13:07:59
【问题描述】:
我的任务是通过查找数据库来搜索某些单词的含义,我正在对数据库进行异步调用,每个请求都会查找 sat n 个术语。 我遇到的问题是我想调用另一个回调,比如说,grand_callback,这个回调的目标是聚合来自所有其他回调的数据,并在聚合所有数据后处理下一组代码。
有没有办法实现相同的..
一些细节:
terms = [........] // 1000 terms
grand_callback = () ->
#called with aggreagted data.
getbucket_data = (bucket ,callback) ->
#some treatment over terms
callback null , data
some_func = (term) ->
bucket.push term
if bucket.length is 15{
getbucket_data bucket , (err, data)->
#i need to aggregate this data
}
_.map terms , some_func
【问题讨论】:
-
您可以使用承诺或您自己的计数器。在任何一种情况下,一些代码都会跟踪对数据库的所有异步调用何时完成(通常通过计算没有更多未完成请求的时间),然后该代码使用累积的数据调用 grand_callback。如果您提供实际的代码结构,人们可以更具体地为您提供帮助。
-
感谢您的意见。
-
感谢大家的建议。
标签: node.js asynchronous callback