0

我遇到了节点续集库的问题。当使用如下所示的成功承诺时:

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 问题,但现在 Node sequelize 现在抛出以下未捕获的异常:

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

我正在尝试在成功承诺回调上调用一个函数,并同时删除 JSHint 问题。有没有另一种方法可以做到这一点,我会对任何指针感到满意。

谢谢你的时间。

4

1 回答 1

1

省略括号:

for (index = 0; index < models.length; index++) {
    model = models[index];
    //don't _invoke_ dropTableCompleteCheck, just _reference_ it
    model.drop().success(dropTableCompleteCheck);
}
于 2013-09-03T22:14:14.910 回答