2016-11-21 87 views
0

在下面的代码中(使用Bluebird库),在出现错误的情况下,有没有办法确定哪个promise失败?有没有办法知道`Promise.join`中哪个承诺失败?

Promise.join(User.getByName(username), User.getByKey(key), (user1, user2) => { 
    //do operations 
}).catch((error) => { 
    //How to know which failed? 
}); 

这两个承诺都会在拒绝时产生一般错误消息。

回答

1

你不能。如果你真的必须,你必须为每个单独实现一个错误处理程序。

Promise.join(User.getByName(username) 
    .catch(err => {throw new Error('error in getByName');}), 
    User.getByKey(key) 
    .catch(err => {throw new Error('error in getByKey');}), 
(user1, user2) => { 
    //do operations 
}).catch((error) => { 
    // error.message should now display origin of error 
}); 
+0

这就是我怀疑..谢谢 –

相关问题