가능한 중복 :
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");
}
}
티 의 난 그냥 싶어 내가
/Users/thomas/Desktop/forerunner/retrieveTransactions.js:120
throw "limit";
^
limit
받고 있어요 무엇 :
error occured
@pimvdb하지 'forEach' 때문에 마찬가지입니다. – ThomasReggi
대답은 거의 같습니다 : 불가능합니다. 아약스는 forEach가 끝나는 것보다 늦게 끝나기 때문에 실제로 이해가됩니다. – pimvdb
반복을 멈추고 싶다면'orders.find()'를 호출하기 전에 플래그를 선언하고 에러가 발생했을 때 플래그를 설정하십시오. 이후의 모든 핸들러는이를 쿼리하고 리턴 할 수 있습니다. 인터페이스가 그것을 지원하면,'some()'을 사용할 수도 있습니다. 이것은'true '를 반환하자마자 처리를 중단합니다. – MauganRa