Почему мое обещание находится в состоянии ожидания? Библиотека HTTP-запросов была изменена - PullRequest
0 голосов
/ 23 апреля 2020

Я изменил с устаревшего запроса на топор ios. оригинальный код

Мой код

var axios = require("axios");
var userDetails;

function initialize() {
    const url = "https://api.github.com/users/narenaryan"
    var options = {


    headers: {
            'User-Agent': 'axios'
        }
    };
    // Return new promise 
    return new Promise(function(resolve, reject) {
        // Do async job
        axios.get(url, options, function(err, resp, body) {
            if (err) {
                reject(err);
            } else {
                resolve(JSON.parse(body));
            }
        })
    })

}

function main() {
    var initializePromise = initialize();
    console.log(initializePromise);
    initializePromise.then(function(result) {
        userDetails = result;
        console.log("Initialized user details");
        // Use user details from here
        console.log(userDetails)
    }, function(err) {
        console.log(err);
    })
}

main();

Когда я его запускаю

Promise { <pending> }

Почему?

1 Ответ

1 голос
/ 23 апреля 2020

Поскольку ax ios .get не принимает функцию обратного вызова, он возвращает обещание, используя приведенный ниже код, он будет работать.

    var axios = require("axios");
    var userDetails;

    function initialize() {
        const url = "https://api.github.com/users/narenaryan"
        var options = {
            headers: {
                'User-Agent': 'axios'
            }
        };
        console.log(url, options)
        return axios.get(url, options);
    }

    function main() {
        var initializePromise = initialize();
        console.log(initializePromise);
        initializePromise.then(function (result) {
            userDetails = result;
            console.log("Initialized user details");
            console.log(userDetails.data)
        }).catch(function (err) {
           console.log(err);
        });
    }

    main();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...