node.js - 如何正确使用NodeJS中的回调函数

标签 node.js http callback request

好吧。尝试在这里提出一个非常简单的请求。第一个使用异步 Nodejs 的代码。根据我检查过的所有地方,我这样做是正确的。他们都没有真正解释回调是如何工作的,他们只是说要做什么,所以我无法直观地弄清楚它。

const request = require("request");

function fetchData(url, json, callback) {
    request({
        url: url,
        json: json,
        method: "get"
    }, callback(error, response, body))
}

console.log(fetchData("https://www.yahoo.com", false, function(error, response, body) {
    if(!error && response.statusCode == 200) {
        return body;
    } else {
        return error;
    }
}));

谢谢

最佳答案

有两件事 - 首先,将回调变量传递给 request(),不要调用该函数。

callbackcallback()

其次,不能使用回调函数的返回值。从回调函数内部调用 console.log()

更改后的代码:

const request = require("request");

function fetchData(url, json, callback) {
    request({
        url: url,
        json: json,
        method: "get"
    }, callback)
}

fetchData("http://www.yahoo.com", false, function(error, response, body) {
    if(!error && response.statusCode == 200) {
        console.log(body);
    } else {
        console.log(error);
    }
}));

关于node.js - 如何正确使用NodeJS中的回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59796899/

相关文章:

internet-explorer - Set-Cookie : Expire property, 时钟偏差和 Internet Explorer 问题

javascript - 如何在 jQuery 中链接延迟对象?

python - 生成 PDF 文件的 Web 服务器

javascript - 两个以上任务的嵌套回调

node.js - 在node.js中,Buffer.from()方法抛出 "ascii is not a function"错误

performance - node.js 误解?

node.js - 使用vuejs和nodejs从mongodb数据库读取数据

Node.js:通过 REST API 上传多部分文件

javascript - jQuery 自定义插件回调 - 新问题

javascript - 将额外参数传递给 jquery.Deferred 回调