在javascript中,使用forEach调用数组中的每个函数?

在javascript中,使用forEach调用数组中的每个函数?,javascript,recursion,Javascript,Recursion,函数数组,[fn1,fn2,…],每个函数通过回调“返回”,传递可选错误。如果通过回调返回错误,则不应调用数组中的后续函数 // one example function function fn1( callback ) { <process> if( error ) callback( errMsg ); else callback(); return; } // go through each function until fn returns erro

函数数组,
[fn1,fn2,…]
,每个函数通过回调“返回”,传递可选错误。如果通过回调返回错误,则不应调用数组中的后续函数

// one example function
function fn1( callback ) {
   <process>
   if( error ) callback( errMsg );
   else callback();
   return;
}

// go through each function until fn returns error through callback
[fn1,fn2,fn3,...].forEach( function(fn){
  <how to do this?>
} );
这似乎有简化的余地


对我来说,解决这类问题的更好方法——它更平坦,逻辑更容易理解。

如果我正确理解您的问题,并且您可以使用JavaScript 1.6(例如,这是针对NodeJS的),那么您可以使用
每个
函数

发件人:

每个为每个元素执行一次提供的回调函数 存在于数组中,直到找到回调返回false的数组为止 价值如果找到这样的元素,则会立即调用every方法 返回false。否则,如果回调函数为所有 元素,则每个元素都将返回true

比如说:

[fn1, fn2, fn3, ...].every(function(fn) {
    // process
    if (error) return false;
    return true;
});

同样,这需要JavaScript 1.6

如果我正确理解您的问题,并且如果您可以使用JavaScript 1.6(例如,这是针对NodeJS的),那么您可以使用
每个
函数

发件人:

每个为每个元素执行一次提供的回调函数 存在于数组中,直到找到回调返回false的数组为止 价值如果找到这样的元素,则会立即调用every方法 返回false。否则,如果回调函数为所有 元素,则每个元素都将返回true

比如说:

[fn1, fn2, fn3, ...].every(function(fn) {
    // process
    if (error) return false;
    return true;
});
同样,这需要JavaScript 1.6