试图将从https.get
检索到的对象设置为变量,而不是将其打印到控制台。尝试使用Promises
来实现此目的,但这只是返回函数本身。
const https = require("https");
if(true){
const destinationsfinal = () => {
return new Promise((resolve,reject) => {
https
.get('https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY', (resp) => {
let data = '';
resp.on('data', (chunk) => {
data += chunk;
});
resp.on('end', () => {
resolve(JSON.parse(data))
});
})
.on('error', (err) => {
reject('Error: ' + err.message);
});
})
}
}
答案 0 :(得分:0)
您必须解析promise,才能从函数中获取结果(这是因为它返回Promise而不是此promise的结果)。要解决此问题,您可以使用then / catch或async / await来完成。
然后捕捉:
let result;
destinationsfinal()
.then((data) => {
result = data;
})
.catch((error) => {
console.log(error);
});
异步/等待:
let result;
(async () => {
try {
result = await destinationsfinal();
} catch (error) {
console.log(error);
}
})();