我需要遍历一组对象并检查回调函数中的值。我的问题是,如果找不到值,我需要抛出一个错误,所以这需要在回调和循环之外。
现在我有这个:
for (i = 0; i < response._conflicts.length; i += 1){
del_rev = response._conflicts[i];
// retrieve a document
that.addJob(
"get",
someID,
options,
// callback
function (response) {
if (condition 1) {
if (condition 2){
console.log("gotcha");
// run a function
f.removeDocument(someID+x);
return;
}
}
},
function (err) {
that.error({ "status": 123 });
}
);
} // end of loop
// now if the loop turns out no results, I need to throw this error
that.error({ "status": 404 });
return;
我的问题是,404
在我的回调检查之前触发的第二个错误可以检测是否满足条件,所以404
一旦满足条件并且我的f.removeDocument(someID+x)
触发器,我总是会触发第二个函数。
我尝试f.removeDocument(someID+x)
从回调和循环中删除,只将变量设置为 true/false,然后抛出我的错误或调用我的函数。但是,相同的结果 = 变量为 false 并在回调中将其设置为 true 之前引发错误。
我想我需要将我的404
错误放在循环和回调中,但我不知道如何确保它只在循环完成且条件未满足时触发一次。
问题:
如何在循环中触发的回调函数中一次性抛出错误?