我正在使用node.js 调用redis 来获取一些数据。然后需要将数据排序到数组中 - 这不是一个昂贵的过程,但我需要一个函数在排序完成后立即异步执行。
如果我在排序代码之后编写该函数,它将在数组排序完成之前触发。所以我看到了解决这个问题的几种方法:
1) 编写 for() 循环,当前一个循环处于最后一次迭代时,下一个循环开始;在最后,放置异步方法以确保它在所有循环完成后运行。
2) 使用setTimeout()。我对此感到不安,因为这似乎可能取决于需要处理的数组的大小,它可能会神奇地太快或太晚地触发。
有比嵌套 for 循环更好的方法吗?
最佳答案
看起来你只是想要 reduceRight
.
arr.reduceRight( function( p, c, i ) {
// sort
if ( i === 0 ) {
// You know you're at the last iteration
// so you can call whatever async func you want
}
});
关于javascript - 在 Node.js 中是否有更好的方法来做到这一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11528358/