首页 > 解决方案 > 如何修复 UnhandledPromiseRejectionWarning

问题描述

我正在尝试修复我的错误,但我不知道如何。我已经研究过寻找节点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 at C:\Users\Aaron Lanier\gt\sandbox\liri-node-app\liri.js:104:66 at process._tickCallback (internal/ process/next_tick.js:68:7) (node:18908) UnhandledPromiseRejectionWarning: 未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。(拒绝编号:1)

(节点:18908)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。

标签: node.jsfscatch-block

解决方案


之后添加 .catch 方法。您也面临问题,因为 data[0] 未定义。请尝试控制台响应以查看响应对象中哪些属性可供您使用。


推荐阅读