【问题标题】:How to pass values to a nodejs callback如何将值传递给nodejs回调
【发布时间】:2017-01-26 00:51:54
【问题描述】:

所以我试图围绕如何将变量/数据传递给回调,就像 Request 是如何做的那样:

var request = require('request');
request('http://www.google.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body) // Show the HTML for the Google homepage.
  }
})

开发人员如何将错误、响应和正文传递给回调以供用户使用?例如,假设我有一个基本的 main 函数:

function main(_arg1, _arg2, callback) { ... }

当我调用它时,我会做类似的事情

main('test1', 'test2', function(a, b){ console.log(a+b); }

正确吗?那么我如何将_arg1_arg2 传递给回调,以便它输出类似test1test2 的结果?

我尝试通过stackoverflow查看所有内容,但找不到与此相关的任何内容,所以如果这是重复的,我很抱歉。

但是,我们将不胜感激任何帮助和/或解释! :)

【问题讨论】:

    标签: javascript node.js asynchronous callback


    【解决方案1】:

    您只需在调用回调时将它们作为参数传递。这是一个例子:

    // define a function that accepts a callback argument
    function callMeBackPlease(x, y, callback) {
        // call the callback and pass it the desired arguments
        callback(x+y, x/y);
    }
    
    // call the function and pass it a callback function
    callMeBackPlease(3, 5, function(sum, div) {
        console.log(sum, div);  // outputs 8, 0.6
    });
    

    回调只是一个函数。而且,在 Javascript 中,您可以在调用其他函数时将函数作为参数传递,然后传递给它的函数可以使用适当的参数调用该回调函数。

    【讨论】:

    • 好的,感谢您提供清晰简单的示例,而不是像我在其他一些问题上看到的那样冗长的回调定义。抱歉,我知道这是一个非常新手的问题,但我仍在尝试适应异步编程
    • @AmouxTechnerd:“而不是像我在其他一些问题上看到的那样对回调进行冗长的定义” 回调只是一个函数。这就是您应该需要的所有定义;)“回调”只是更好地描述了函数的用途。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    相关资源
    最近更新 更多