Как правильно использовать функцию обратного вызова в NodeJS - PullRequest
1 голос
/ 18 января 2020

Хорошо. Попытка сделать очень простой запрос здесь. Первый код с асинхронным 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;
    }
}));

Спасибо

1 Ответ

0 голосов
/ 18 января 2020

Две вещи - во-первых, передайте переменную обратного вызова в request(), не вызывайте функцию.

callback против callback()

Во-вторых, вы не можете использовать возвращаемое значение из функции обратного вызова. Вызовите 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);
    }
}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...