簡體   English   中英

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

如果我直接記錄store變量,它將正確記錄陣列行中的每個實例。 如果我嘗試通過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');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM