我从过时的请求更改为axios。 original code
我的代码
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> }
为什么?
答案 0 :(得分:1)
由于axios.get不接受回调函数,因此它使用下面的代码返回一个Promise。
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();