gpt4 book ai didi

javascript - 循环值无法在 Node js的knex内部工作

转载 作者:行者123 更新时间:2023-12-01 01:41:25 26 4
gpt4 key购买 nike

我尝试在 knex 函数内获取循环值,但得到了循环的最终值。

for (i = 0; i < 10; i++) {

knex_in.raw(query).then(function (result) {
console.log(i)
});

}

需要帮助。

最佳答案

循环中的计数器 (i) 是一个全局变量。在循环的每次迭代中,您都在创建一个 promise 。当您的 Promise 得到解决时,循环就完成了,因此 i 是最终值。

解决方案是将i 的值保存在作用域变量中。这可以通过多种方式完成,这里有两种:

您可以使用let (取决于 ES6 支持)

for (let i = 0; i < 10; i++) {

setTimeout(function() {
console.log(i);
}, 500);

}

或者您可以通过创建函数将 i 的值存储在作用域变量中:

function someFunction(value) {
setTimeout(function() {
console.log(value);
}, 500);
}

for (i = 0; i < 10; i++) {
someFunction(i)
}

关于javascript - 循环值无法在 Node js的knex内部工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52367863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com