async pour la boucle dans node.js

Je suis nouveau sur ce node.js ..je suis un peu peu confus au sujet de ce rappel..Dans mon application à l'intérieur d'une boucle for, je vais appeler un asynchrones appel de fonction,je pense que mon problème est que, avant que je reçois la réponse de l'appel asynchrone ma boucle pour obtenir en boucle.

Mon code:

async.forEach(Object.keys(config), function(key, next) {
        search(config[key].query, function(err, result) { //
        console.log("fffffffffff="+ util.inspect(result))-------- >>>Getting undefined..
            if (err) return next(err) //
            var json = JSON.stringify({
                "result": result
            });
            results[key] = {
                "result": result
            }
            console.log("rrrrrrrr="+util.inspect(results[key]))
            next() //<---- critical piece.  This is how the forEach knows to continue to the next loop.  Must be called inside search's callback so that it doesn't loop prematurely.                   
        })
    },
    function(err) {
        console.log('iterating done');

         res.writeHead(200, {
        'content-type': 'application/json'
    });
    res.end(JSON.stringify(results));  
    });


}

Fonction de recherche de code:

var matches = [];
    var qrySubString = query.substring(0, 4);
    client.query("select * from xxxxxxxxx where level4 ILIKE '%" + query + "%'", function(err, row1, fields) {
        for (var id in row1.rows) {                
            var match, name;                
            if (query == row1.rows[id].level4) {
                match = true;
                name = row1.rows[id].level4;
            }
            else {
                match = false;
                name = query;
            }
            matches.push({
                "id": id,
                "name": row1.rows[id].level4,
                "score": 100,
                "match": match,
                "type": [{
                    "id": "/people/presidents",
                    "name": "US President"
                }]
            })
        }           
        callback(matches);
    })

Je veux exécuter pour la boucle après l'exécution réussie de 1 de la fonction recherche,je pense que je dois utiliser asynchrone pour la boucle.Merci de me guider pour résoudre ce..Merci d'avance..

InformationsquelleAutor Subburaj | 2014-01-17