如何使错误转到catch语句

时间:2017-08-30 14:27:39

标签: node.js typescript firebase

当使用firebase节点库(实时数据库)时,会返回一个promise,但是如果.then()方法中的代码中发生异常会怎样?我怎样才能将代码转到.catch()方法?这是我尝试使用catch方法的代码。

admin.database().ref('/something/something').once('value').then(function(data: admin.database.DataSnapshot) {
    if(data.val() === null) {
        return new TypeError('invalid');
    }
}).catch(function(err) {
    console.log(err);  
});

2 个答案:

答案 0 :(得分:2)

当您听说trycatch时,您需要考虑的第三个字是throw

throw new TypeError('invalid')

enter image description here

答案 1 :(得分:1)

您可以使用async-await

简化错误处理,使代码更具可读性
async function asyncFunction() {
    try {
        const data: admin.database.DataSnapshot = await admin.database().ref('/something/something').once('value');
        if(data.val() === null) {
            throw new TypeError('invalid');
        }
    } catch (err) {
        console.log(err);  
    }
}