【发布时间】:2019-12-15 07:28:21
【问题描述】:
我正在尝试解决我的错误,但我不知道如何解决。我已经研究过寻找节点UnhandledPromiseRejectionWarning,但我无法修复它。
function getBandsInTown(artist) {
var artist = userInput;
var bandQueryURL = "https://rest.bandsintown.com/artists/" + artist + "/events?app_id=codingbootcamp"
axios.get(bandQueryURL).then(
function (response) {
console.log("=============================");
console.log("Name of the venue: " + response.data[0].venue.name + "\r\n");
console.log("Venue Location: " + response.data[0].venue.city + "\r\n");
console.log("Date of event: " + moment(response.data[0].datetime).format("MM-DD-YYYY") + "\r\n");
var logConcert = "======Begin Concert Log Entry======" + "\nName of the musician: " + artist + "\nName of the venue: " + response.data[0].venue.name + "\nVenue location: " + response.data[0].venue.city + "\n Date of event: " + moment(response.data[0].datetime).format("MM-DD-YYYY") + "\n======End Concert Log Entry======" + "\n";
fs.appendFile("log.txt", logConcert, function (err) {
if (err) throw err;
})
// logResults(response.data)
});
(node:18908) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'venue' of undefined 在 C:\Users\Aaron Lanier\gt\sandbox\liri-node-app\liri.js:104:66 在 process._tickCallback (internal/process/next_tick.js:68:7) (节点:18908)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。 (拒绝编号:1)
(node:18908) [DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。
【问题讨论】:
-
之后添加捕获。例如:-
axios.get(url).then(----).catch(err=>{ console.log(err); }); -
在
console.log(response);之后也很有用function (response) { -
这不是您所写错误的原因,但是在普通异步回调中的
if (err) throw err;绝不是合适的代码。它没有任何用处。编写真正的错误处理。
标签: node.js fs catch-block