Javascript 循环值不能在节点js中的knex内工作
我试图在knex函数中得到循环值,但得到了循环的最终值Javascript 循环值不能在节点js中的knex内工作,javascript,node.js,knex.js,Javascript,Node.js,Knex.js,我试图在knex函数中得到循环值,但得到了循环的最终值 for (i = 0; i < 10; i++) { knex_in.raw(query).then(function (result) { console.log(i) }); } (i=0;i
for (i = 0; i < 10; i++) {
knex_in.raw(query).then(function (result) {
console.log(i)
});
}
(i=0;i<10;i++)的{
knex_in.raw(查询)。然后(函数(结果){
控制台日志(i)
});
}
需要帮助。循环中的计数器(i
)是一个全局变量。在循环的每次迭代中,您都在创建一个承诺。当您的承诺得到解决时,循环已经完成,因此i
是最终值
解决方案是将i
的值保存在范围变量中。这可以通过以下两种方式实现:
您可以使用(取决于ES6支持)
for(设i=0;i<10;i++){
setTimeout(函数(){
控制台日志(i);
}, 500);
}
循环中的计数器(i
)是一个全局变量。在循环的每次迭代中,您都在创建一个承诺。当您的承诺得到解决时,循环已经完成,因此i
是最终值
解决方案是将i
的值保存在范围变量中。这可以通过以下两种方式实现:
您可以使用(取决于ES6支持)
for(设i=0;i<10;i++){
setTimeout(函数(){
控制台日志(i);
}, 500);
}