错误处理try&catch+回调
Error-handling try & catch + callback?
可能重复:
是否可以捕获JavaScript异步回调中抛出的异常?
我从数据库中提取订单,然后请求,我希望能够打破forEach
,我可以用try
和catch
来做到这一点,但我认为回调不起作用
try{
orders.find().forEach(function(order){
request({
"method":"get",
"json":true
},function (error, response, data){
if (!error && response.statusCode == 200) {
console.log("Order id "+order.id);
}else{
throw "limit";
}
});
});
}catch(err){
if(err == "limit"){
console.log("error occured");
}
}
这就是我得到的
/Users/thomas/Desktop/forerunner/retrieveTransactions.js:120
throw "limit";
^
limit
我只想:
error occured
您需要在回调函数中添加try-catch,比如:
orders.find().forEach(function(order){
request({
"method":"get",
"json":truetry{
},function (error, response, data){
try{
if (!error && response.statusCode == 200) {
console.log("Order id "+order.id);
}else{
throw "limit";
}
}catch(err){
if(err == "limit"){
console.log("error occured");
}
}
});
});
相关文章:
- AngularJS:我可以跳过函数参数回调吗
- 要求未定义JS回调参数
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 自引用回调
- 测试Angular Service解决错误回调中的promise
- 如何将一个JavaScript函数回调为多个函数
- JavaScript回调函数
- 用于回调的javascript参数
- 将json回调数据转换为日期
- 承诺在非节点式回调上使用Bluebird
- 如何在回调函数中执行流
- 回调函数中传递参数的困难(Google Map API Markers)
- Soundcloud Javascript SDK 3.0-回调无法读取属性'connectCallback
- http/rxjs catch回调中的Angular 2重定向导致TypeError:无法读取属性'订阅'
- 错误处理try&catch+回调
- 与在异步回调链中使用 try catch 块相比,返回异常有什么优势
- Bluebird.js:重新抛出catch回调中的错误不会再次被捕获
- 为什么没有触发`.catch`回调
- 为什么两者都承诺's然后&catch回调被调用
- 即使我在所有 then-able 中使用拒绝回调,我是否总是需要在最后需要 catch()