Javascript 回调节点js中的增量var
在这段代码中有可能增加var licznik吗? 我尝试过这样的事情,但总是得到0。有人能解释一下我做错了什么吗Javascript 回调节点js中的增量var,javascript,node.js,Javascript,Node.js,在这段代码中有可能增加var licznik吗? 我尝试过这样的事情,但总是得到0。有人能解释一下我做错了什么吗 rows.forEach(function(record) { var licznik = 0; var offer = manager.createOffer('76561198252553560'); inventory.forEach(function(item) { if(licznik <= recor
rows.forEach(function(record) {
var licznik = 0;
var offer = manager.createOffer('76561198252553560');
inventory.forEach(function(item) {
if(licznik <= record.amount) {
if(item.market_hash_name == record.real_name) {
var asid = item.assetid;
(function(licznik){
connection.query('SELECT count(id) as wynik FROM used where asset_id = \'' + asid + '\'', function(err, wiersze) {
if (wiersze[0].wynik == 0) {
var employee = {
asset_id: asid,
trans_id: record.tid
};
connection.query('INSERT INTO used SET ?', employee, function(err, res) {
if (err) throw err;
offer.addMyItem(item);
console.log(licznik);
&licznik++;
});
}
});
})(licznik);
}
}
});
});
rows.forEach(函数(记录){
var-licznik=0;
var offer=manager.createOffer('76561198252553560');
inventory.forEach(功能(项目){
如果(licznik正如对您原始问题的评论所指出的,我不知道这段代码实际要实现什么。我可以告诉您的是,您提供给connection.query
的回调在forEach
的每次迭代中都没有触发。全部原因connection.query
tak调用回调是因为您不知道操作何时完成。节点被设计为异步的,因此它在forEach
循环的每次迭代中所做的一切都是开始查询。提供给查询的回调可以在任何时候调用,这也意味着在另一个查询之后触发的查询可能触发其callback在第一个查询的回调之前。它只取决于每个查询需要多长时间
如果需要在forEach
的每次迭代中递增licznik
,则需要在If语句之后递增它
rows.forEach(function(record) {
var licznik = 0;
var offer = manager.createOffer('76561198252553560');
inventory.forEach(function(item) {
if(licznik <= record.amount) {
// .... omitted for brevity
}
licznik++; // <-- increment here, outside of the closure.
});
});
寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现该问题所需的最短代码。请参阅:、和。
rows.forEach(function(record) {
var licznik = 0;
var offer = manager.createOffer('76561198252553560');
inventory.forEach(function(item) {
if(licznik <= record.amount) {
if(item.market_hash_name == record.real_name) {
var asid = item.assetid;
(function(licznik2) { // <-- notice this is a new variable
connection.query('SELECT count(id) as wynik FROM used where asset_id = \'' + asid + '\'', function(err, wiersze) {
if (wiersze[0].wynik == 0) {
var employee = {
asset_id: asid,
trans_id: record.tid
};
connection.query('INSERT INTO used SET ?', employee, function(err, res) {
if (err) throw err;
offer.addMyItem(item);
console.log(licznik2);
licznik2++;
});
}
});
})(licznik);
}
}
});
});