node.js 异步每个函数回调失败
node.js async each function callback failing
我正在调用我的数据库,并希望使用结果向另一台服务器发出请求,然后处理响应。我想异步执行此操作,因此我正在尝试使用异步库。
var sendRequest = function (store) {
console.log(store);
}
connection.connect();
connection.query('SELECT * from stores', function(err, rows, fields) {
if (!err){
async.each(rows, function(row, sendRequest) {
var store = {id: row.id, address: row.address};
//console.log(store); <-- this works
sendRequest(store); <-- this logs {id: '', address: null} only once
}, function(err){
console.log(err);
});
}
else
console.log('Error performing query');
});
connection.end();
如果我直接记录存储变量,它会正确记录数组行中的每个实例。如果我尝试通过 sendRequest 回调来完成它,它只会执行一次并且不正确。
你混淆了一些东西。您正在为 each
回调使用相同的名称 sendRequest
。你应该这样做:
connection.query('SELECT * from stores', function(err, rows, fields) {
if (!err){
async.each(rows, function(row, callback) {
var store = {id: row.id, address: row.address};
sendRequest(store);
callback();
}, function(err){
console.log(err);
});
}
else
console.log('Error performing query');
});
我正在调用我的数据库,并希望使用结果向另一台服务器发出请求,然后处理响应。我想异步执行此操作,因此我正在尝试使用异步库。
var sendRequest = function (store) {
console.log(store);
}
connection.connect();
connection.query('SELECT * from stores', function(err, rows, fields) {
if (!err){
async.each(rows, function(row, sendRequest) {
var store = {id: row.id, address: row.address};
//console.log(store); <-- this works
sendRequest(store); <-- this logs {id: '', address: null} only once
}, function(err){
console.log(err);
});
}
else
console.log('Error performing query');
});
connection.end();
如果我直接记录存储变量,它会正确记录数组行中的每个实例。如果我尝试通过 sendRequest 回调来完成它,它只会执行一次并且不正确。
你混淆了一些东西。您正在为 each
回调使用相同的名称 sendRequest
。你应该这样做:
connection.query('SELECT * from stores', function(err, rows, fields) {
if (!err){
async.each(rows, function(row, callback) {
var store = {id: row.id, address: row.address};
sendRequest(store);
callback();
}, function(err){
console.log(err);
});
}
else
console.log('Error performing query');
});