如何在NodeJS中正确使用回调函数

时间:2020-01-18 01:54:56

标签: node.js http callback request

好的。尝试在此处提出一个非常简单请求。异步Node.js的第一个代码。根据我检查过的所有地方,我做的很好。他们都没有真正解释如何回调的工作原理,只是说出要做什么,所以我没有办法直观地弄清楚它。

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;
    }
}));

谢谢

1 个答案:

答案 0 :(得分:0)

两件事-首先,将回调变量传递到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);
    }
}));