如何处理导致 Nodejs 崩溃的 twilio 错误

Cor*_*rin 0 node.js twilio

当抛出错误时,使用 twilio Nodejs api 会使节点崩溃。例如,如果房间已经存在..

/home/web/node_modules/twilio/node_modules/q/q.js:876 抛出错误;错误:房间存在

尝试捕获没有帮助。尝试将其包装在承诺中,但没有成功。尝试首先获取房间,但如果房间不存在,它也会以同样的方式崩溃。试图检索所有正在进行的房间的列表,但它永远停滞不前。我可以获得所有已完成房间的列表,但我需要检查正在进行的房间。无论哪种方式,节点崩溃都是不好的,需要能够处理这些不测事件。

    exports.createBackendRoom = function (roomname, callback) {
        try {
            client.video.rooms.create({uniqueName: roomname})
            .then(function(room) {
                console.log(room);
                callback(true);
            }).done();
        } catch(e) {
            console.log(e);
            callback(false);
        }
    }
Run Code Online (Sandbox Code Playgroud)

无法处理错误..

/home/web/node_modules/twilio/node_modules/q/q.js:876 抛出错误;错误:房间存在

我该如何优雅地处理这些?

Sri*_*har 5

尝试捕获没有帮助。

这是因为异步操作引发了错误。Try-catch将处理同步操作引发的错误。要处理异步错误,请添加一个catch(err=>{})

exports.createBackendRoom = function (roomname, callback) {
  client.video.rooms.create({uniqueName: roomname})
    .then(function (room) {
      console.log(room);
      callback(true);
    }).catch(err => {
    console.log(err); // handle error
    callback(false);
  }).done();
};
Run Code Online (Sandbox Code Playgroud)