javascript - 节点sequelize回调承诺需要一个函数,是否有一个使用函数调用移除声明函数的方法

  显示原文与译文双语对照的内容
75 5

我的节点sequelize库出现问题。当使用如下所示的成功承诺时:

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

JSHint抱怨并正确强调了代码问题"不在循环内生成函数"。为了克服这一问题,我尝试用以下方法替换 above 代码:

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

我试图在成功保证回调上调用函数,并同时删除JSHint问题。是否还有另一种方法可以以做到这两种情况,我会很高兴的。

感谢你们抽空到来

时间:原作者:1个回答

59 5

省略括号:

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