我正在使用node async lib-https://github.com/caolan/async#forEach,希望遍历一个对象并打印出它的索引键.一旦完成,我想执行回调.

以下是迄今为止我所了解的,但从未见过的'iterating done'人:

    async.forEach(Object.keys(dataObj), function (err, callback){ 
        console.log('*****');

    }, function() {
        console.log('iterating done');
    });  
  1. 为什么最终的函数没有被调用?

  2. 如何打印对象索引键?

推荐答案

最后一个函数不会被调用,因为async.forEach要求 for each 元素调用callback函数.

用这样的方式:

async.forEach(Object.keys(dataObj), function (item, callback){ 
    console.log(item); // print the key

    // tell async that that particular element of the iterator is done
    callback(); 

}, function(err) {
    console.log('iterating done');
});  

Node.js相关问答推荐

Express 4.18正文解析

对接Nestjs/VueJS应用程序

如何使用聚合管道交换键值对

findoneandupdate()方法更新数据库,但其响应在请求中返回为null

安装样式组件时出现react 错误

如何在mongoose 聚合中执行全文搜索

如何在 Docker 容器中 SSO 登录 AWS(使用 aws-sdk v3)

使用react 组件加载特定 DIV 而无需重新加载整个页面

React Native:执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade 时发生故障

如何在没有云功能的情况下使用 Google PubSub

在 node:readline 中按 CTRL+D 时会发出什么信号?

users.watch(在 gmail google api 中)如何收听通知?

file.slim.js 中的苗条是什么

调用 require 时的 const vs let

为什么 JavaScript 的 parseInt(0.0000005) 打印5?

JSHint 是否支持异步/等待?

如何在 NodeJs 中下载和解压缩内存中的 zip 文件?

Express.js:没有这样的文件或目录

Selenium WebDriver 等到元素显示

避免在弹性 beantalk 中重建 node_modules