【发布时间】:2012-07-18 02:21:38
【问题描述】:
我正在使用 node.js 调用 redis 来获取一些数据。然后需要将数据排序为数组 - 这不是一个昂贵的过程,但我需要一个函数在排序完成后立即异步执行。
如果我在排序代码之后立即编写函数,它将在数组排序完成之前触发。所以我看到了解决这个问题的几种方法:
1) 编写 for() 循环,当前一个循环处于最后一次迭代时,下一个循环开始;最后,放置异步方法以确保它在所有循环完成后运行。
2) 使用 setTimeout()。我对此感到不安,因为看起来可能取决于需要处理的数组的大小,它可能会神奇地过早或过晚触发。
有没有比嵌套 for 循环更好的方法来解决这个问题?
【问题讨论】:
-
如何异步排序?
-
你用什么对数组进行排序?您不能只将 onComplete 函数传递给该函数以在排序完成后触发吗?
-
JavaScript 中常规数组的排序是同步的,因此在 sort 之后立即调用的函数不可能将数组视为已排序。可以举个例子吗?
标签: javascript node.js asynchronous