javascript - 在 Node.js 中是否有更好的方法来做到这一点?

标签 javascript node.js asynchronous

我正在使用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/

相关文章:

c# - 将异步与 Entity Framework 一起使用 IQueryable<T> 类型的选择列表

javascript - 自定义验证适用于服务器端,但不适用于客户端 asp mvc 5

node.js - 如何使用显示模块模式扩展 Node EventEmitter?

javascript - 异步 JavaScript 和函数

javascript - Websockets 的 400、502、503 错误

asynchronous - CUDA 流、纹理绑定(bind)和异步 memcpy

javascript - 谷歌登录不提供回调

javascript - 单击它时如何使一个div越过另一个div?

javascript - 是否可以知道何时删除属性?

asynchronous - Dart Pirate教程在构建后不下载JSON(第7步)