javascript - 在 Node 中,如何要求函数仅在获取所需的所有数据后才返回?

标签 javascript node.js

我有一个名为 createMessage 的方法,用于传递请求和响应。 当调用此方法时,它当前返回未定义,因为它在检索所有数据之前就结束了。有什么办法可以让它等待吗?

createMessage: function(request, response) {   
      var totalData = '';
      request.on('data', function(data) {
        totalData += data.toString();
      });
      request.on('end', function() {
        totalData = JSON.parse(totalData);
        totalData.created_at = new Date();
        return totalData;
      })
    });
  }

最佳答案

在 end 函数内调用回调作为其异步。这就是 Node 的本质

createMessage: function(request, response, callback) {   
      var totalData = '';
      request.on('data', function(data) {
        totalData += data.toString();
      });
      request.on('end', function() {
        totalData = JSON.parse(totalData);
        totalData.created_at = new Date();
        callback(totalData)
      })
    });
  }

关于javascript - 在 Node 中,如何要求函数仅在获取所需的所有数据后才返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35190232/

相关文章:

javascript - Ajax不会向php表单发起POST请求

javascript - 使用 JavaScript 使按钮居中

javascript - 如何使文本在屏幕上来回移动?

Node.js TTL 无法使数据过期

node.js - 删除实体上的多对多关系表有多清楚

javascript - 如何将跨源 iframe 音频静音

javascript - Angular 2 - 如何在指令上设置动画?

node.js - Node 集群: Handle task only to one worker

javascript - 每次生成一个随机字符串

javascript - Node.js 文件系统 - 添加新文件时读取文件夹中的文件