в следующем коде не может использовать цикл for
над массивом, поскольку каждый шаг неблокируемый и требует функции обратного вызова
Теория работы: форма отправляет вызовы verify()
, где el
-HTMLFormElement и nextFunc
- это функция обратного вызова.каждый элемент, содержащийся в форме, проверяется с помощью verifyCol()
, с возвратом к nextFunc(err)
при первой возвращенной ошибке или, когда сделано, с nextFunc()
.
// verify as called from post
Post.prototype.verify = function( el, nextFunc ) {
var post = this;
var arr = this.entryArr(el);
(function verifyOne( i ) {
if( i >= arr.length ) nextFunc();
else post.colVerify( arr[i], function(err) {
if( err ) nextFunc( err );
else verifyOne( i+1 );
} );
})(0);
}
Этот подход имеет смысл для меня(хотя подозрительно выглядит как Лисп).
Правильная ли здесь парадигма?Есть ли опасность при рекурсивном вызове функций обратного вызова?