2016-07-15 92 views
0

我有一个循环是这样的:从回调函数中继续forEach?

attributes.forEach((attribute) => { 
    if(Boolean(q[attribute])){ 
     test = req.assert(attribute, 'required').optional().notEmpty(); 
     isValid(test, callback) 
     req.user.setAttribute(attribute, q[attribute]); 
    } 
}); 

回调如果测试无效时被触发回调函数。我希望做一回进入下一个itteration,但如果我不

isValid(test, function(){ 
    return; 
}) 

它只会从回调函数返回的回调。

+0

我们可以看到isValid函数的定义吗? – 10100111001

+0

这样的事情:if(isValid(test,callback)){return;} while isvalid function is true/false from isvalid function –

回答

1

检查isValid的返回值。如果是,则return。下面是一个简单的例子,因为我没有看到你的整个数据集:

function isThree(num) { 
 
    return (num == 3); 
 
} 
 

 

 
[0, 1, 2, 3, 4].forEach(num => { 
 
    if (isThree(num)) { 
 
    return 
 
    } 
 
    console.log(num); 
 
})

注意,“3”并没有记录到控制台。