具有一个响应的多个回调-Node JS

Kishore Indraganti

我从客户端收到一个请求,该请求需要从两个表中选择数据,从一个表中我需要在表2中选择1000条记录,我只需要选择两个记录,并通过回调进行处理。我想要两个回调函数执行后需要发送到我的客户端的响应,如何在节点js中实现呢?

高拉夫·古普塔(Gaurav Gupta)

您有以下选择:

  1. 遵循Node样式的回调模式。另请阅读,回叫地狱
  2. 遵守诺言

回调模式

var f  = function(somedata, cb){
    // pick user from db
    pickUserFromTable1(somedata, function(err, users){
        // callled on completion of pickUserFromDB
        if(err){
            //handle error.
            cb(err, null);
            return;
        }

        pickUserFromTable2(users, function(err, finallySelectedUsers){
            // called on completion of pickUserFromTable2
            if(err){
                // handle error.
                cb(err, null);
                // returning is important. or use else part of if to separate the case
                return;
            }

            // call initiator's callback function on completion of both pickUserFromTable1 and pickUserFromTable2
            cb(null, finallySelectedUsers);
        });
    })
}

注意:这种方法对短期项目很有用,但是如果依赖项链很长,则会导致一些维护问题(回调地狱)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Node.js:来自一个函数的多个回调

在node.js中正确放置具有多个异步redis调用的回调

Node.js异步循环,下一个循环之前从函数进行回调

Node.js - TypeError [ERR_INVALID_CALLBACK]:回调必须是一个函数

如何传递一个函数作为 Node.js 中另一个函数的回调?

在MongoDB,Node.js中使用一个成功回调Mongoose保存一个以上的实体

在具有多个导出功能的另一个文件中引用socket.io实例(node.js)

Node.js如何知道回调的第一个参数是否是错误处理程序?

Node.js如何从异步回调中返回数组以在另一个文件中使用

TypeError [ERR_INVALID_CALLBACK]:回调必须是一个函数。在Node.js中收到未定义

Node.js等待回调或数据库响应

Node.js for带有回调的循环,之后具有同步执行

Node.js 错误:Route.post() 需要一个回调函数,但得到了一个 [object Object]

Node.JS + MySQL-将40多个UPDATE语句压缩为一个,每个语句都具有唯一的WHERE子句

Node.js使用多个回调的正确方法

多个Node.js回调存在问题

Node.JS-如何转义多个嵌套的回调?

Node.js中的多个mysql查询和回调

整合node.js模块导出中的多个回调

类型错误:在带有 SQL 查询的 Node js 中提供时,参数回调必须是一个函数

如何从一个主要的node.js脚本运行多个node.js脚本?

Node.js中的回调函数没有结果

Node.js-迭代运行带有回调的函数

Node.js:处理多个Promise回调(回调地狱)

如何在 Node.JS 中“包装”具有多个结果的响应

Node Js链接响应

Node.js:在第一个连接回调中进行连接和“ writeHead”

Node.js中的回调顺序

等到回调完成Node.js