node.js - 是否可以使用许多函数(超过 10 个)来处理 Node 的异步特性(尤其是添加到 MySql 数据库时)

标签 node.js asynchronous node-mysql

当我收到 API 调用时,我必须安装大约 4,5 个表,因为条目具有子项,而子项又具有子项。由于我必须将数据从第一个插入传递到第二个插入(使用父 ID),因此我最终拥有太多函数(例如函数 insertTable1、insertTable1Kids、insertTable1KidsKids)等等。

这样的设计好吗?我使用了这么多函数,这让我很困扰。有没有更好的方法来处理这个问题?

最佳答案

使用闭包和async模块。

npm install async

你的代码看起来像这样......

var async = require('async');

exports.your_route = function(req, res) {
  var parent_id = req.query.parent_id;
  var calls = [];
  calls.push(function(callback) {
    // insertTable1 - use parent_id
    callback(false);
  });
  calls.push(function(callback) {
    // insertTable1Kids - use parent_id
    callback(false);
  });
  calls.push(function(callback) {
    // insertTable1KidsKids - use parent_id
    callback(false);
  });
  calls.push(function(callback) {
    // return response
    res.send("tabels for parent ID: "+parent_id+" created);
    callback(false);
  });
  async.series(calls);
};

关于node.js - 是否可以使用许多函数(超过 10 个)来处理 Node 的异步特性(尤其是添加到 MySql 数据库时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17282637/

相关文章:

node.js - AWS Lambda NodeJS12.x - 加载共享库时出错 : libXrender. so.1

node.js - promise 拒绝时从函数返回

node.js - 使用 Promise 进行流量控制

c# - 异步,只有一个等待

javascript - 从 Promises 异步更新 DOM

javascript - 带 Node 的简单用户登录验证模块

node.js - 为什么我的 Q promise 不起作用?

javascript - Gatsby 与 Material-UI : Why createPageContext?

node.js - 使用选项参数转义具有重叠列名称的联接的查询

c# - C#中的非阻塞文件复制