gpt4 book ai didi

javascript - bluebirdjs协程错误处理(浏览器)

转载 作者:行者123 更新时间:2023-12-03 08:51:52 30 4
gpt4 key购买 nike

我应该如何处理蓝鸟协程中的错误?

我使用co in节点已有一段时间,它具有出色的捕获功能。

co(function*() {

return new Promise(function(resolve, reject) {
// whatever stuff
});

}).catch(function(err) {console.error(error.stack)});

但是在浏览器/客户端上使用蓝鸟,这是一场噩梦。没有catch函数,我要返回的错误(如果有的话)是匿名的或未处理的,这完全让人感到困惑。

我已经在bluebirdjs的网站上进行了检查,几个月前正在讨论如何处理错误。有时,有人写道:

There should be a better example highlighting the benefits of using try, catch and finally inside coroutine.



http://bluebirdjs.com/docs/api/promise.coroutine.html

我的意思是:尝试,将捕获物最终嵌套在协程中吗?我承认,我什至一直在遵循一些常规的建议,但是我似乎并不对。 Promise和协程的重点是摆脱回调创建的难看的过多嵌套,现在又是什么呢?再来一次?

请,如果有人知道如何将bluebirdjs错误困惑转化为更好的解决方案,我将非常感激。

最佳答案

如果该co是蓝鸟Promise.coroutine,它将自动传播错误并记录未处理的拒绝。

记录未处理的错误。您可以处理以下错误:

Promise.coroutine(function*() { 
try {
doSomething();
yield doSomethingAsync();
} catch (e) {
// handle error
}
})();

关于javascript - bluebirdjs协程错误处理(浏览器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38618750/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com