2013-09-03 6 views
0

У меня возникла проблема с библиотекой продолжения узла. При использовании обещания успеха, как показано ниже:Узел sequelize callback обещает ожидание функции, есть ли способ удаления объявленной функции с вызовом функции

for (index = 0; index < models.length; index++) { 
    model = models[index]; 
    model.drop().success(function() { 
     dropTableCompleteCheck(); 
    }); 
} 

JSHint жалуется и справедливо подчеркивает проблему коды «Не делайте функции в цикле». Чтобы преодолеть эту проблему, я попытался заменить приведенный выше код следующим:

for (index = 0; index < models.length; index++) { 
    model = models[index]; 
    model.drop().success(dropTableCompleteCheck()); 
} 

Это устраняет проблему JSHint, но теперь Узел sequelize теперь бросает следующий неперехваченное исключение:

error: Uncaught application error: 
    TypeError: listener must be a function 

Я m пытается вызвать функцию на успешном вызове с обещанием успеха и одновременно удалить проблему JSHint. Есть ли другой способ сделать это, что делает оба, я был бы счастлив с любыми указателями.

Спасибо за ваше время.

ответ

1

Опустить скобки:

for (index = 0; index < models.length; index++) { 
    model = models[index]; 
    //don't _invoke_ dropTableCompleteCheck, just _reference_ it 
    model.drop().success(dropTableCompleteCheck); 
} 
+0

Это сделано, спасибо. Почувствуй себя ногой. –

 Смежные вопросы

  • Нет связанных вопросов^_^