javascript - 从 Node 中的多个嵌套回调中返回值

标签 javascript node.js callback node-mysql

我想从嵌套回调中返回值。下面是伪代码:

dataSetFinal = function1()
within function1
    database is queried to get dataSet1
    call function2, using dataSet1 as arguments
        within function2
        query database to get dataSet2
        return dataSet2
    return dataSet2

这是我让它发挥作用的尝试

dataSetFinal = function1("arg1", function(err, rows){
                    client.query(sql1, function(err,rows){
                        function2(rows[0].userId, function(err, rows){
                            client.query(sql2, function(err, rows){
                                return rows;
                            });
                        });
                    });
                });

但我无法弄清楚如何让 function1 返回 function2 的“行”。

最佳答案

你不这样做,在某种程度上,你也不能这样做。理论上,您可以将值或引用传递给上层上下文并返回它,但这只有在中间的每个进程都完全同步时才有效。

那么该怎么办呢?回调就是解决方案。您可以将一个附加函数传递给外部方法,并使用所需的值调用该函数,而不是依赖返回值。

<小时/>

关于javascript - 从 Node 中的多个嵌套回调中返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28029226/

相关文章:

javascript - 更改移动设备的 DOM 堆叠顺序

javascript - 从大文件流式传输并创建数组

javascript - 将ajax数据返回给不同链接对应的不同函数

javascript - '' function({})(req, res )'' 等内容的最后一个括号在 JavaScript 中意味着什么?

javascript - 在页面上搜索并返回图片

javascript - 水平滑出菜单在 Firefox 中不起作用

javascript - 将数组从 Html 合并到 Jquery

javascript - sed 在 jenkins 进程中运行时失败

node.js - 分析node.js中的日志文件

javascript - Typescript 通过多个关键字过滤具有字符串数组的对象数组