Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环值不能在节点js中的knex内工作_Javascript_Node.js_Knex.js - Fatal编程技术网

Javascript 循环值不能在节点js中的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

我试图在knex函数中得到循环值,但得到了循环的最终值

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);
}