1
可能重複:
Is it possible to catch exceptions thrown in a JavaScript async callback?錯誤處理try&catch +回調?
我從數據庫中提取訂單,然後請求,我希望能夠打破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");
}
}
Thi s是什麼我得到
/Users/thomas/Desktop/forerunner/retrieveTransactions.js:120
throw "limit";
^
limit
我只是想:
error occured
@pimvdb不因爲'forEach'。 – ThomasReggi
答案或多或少一樣:不可能。這實際上是有道理的,因爲ajax比'forEach'結束時晚。 – pimvdb
如果您想停止迭代,只需在調用'orders.find()'之前聲明一個標誌並在遇到錯誤時進行設置。任何後續處理程序都可以查詢並返回。如果接口支持它,你也可以使用'some()',一旦處理程序返回'true'就停止處理。 – MauganRa