抛出错误时,使用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);
}
}
无法处理错误。
/home/web/node_modules/twilio/node_modules/q/q.js:876 抛出错误; 错误:房间存在
如何优雅地处理这些问题?
答案 0 :(得分:1)
尝试捕获没有帮助。
这是因为异步操作引发了错误。 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();
};