可能的重复:
是否可以捕获 JavaScript 异步回调中引发的异常? https://stackoverflow.com/questions/3677783/is-it-possible-to-catch-exceptions-thrown-in-a-javascript-async-callback
我正在从数据库中提取订单,然后请求,我希望能够打破forEach
我可以用try
and 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");
}
}
});
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)