Node.js は基本的に非同期処理となりますが、配列をループで回して、それぞれの非同期タスクを集約したい場合には、 以下のように async.reduce を使うことにより集めることができるようになります。
npm install async --save
var async = require('async'); async.reduce(recipients, [], function (list, recipient, done) { client.get(recipient, function (err, res) { if (!res) { list.push(recipient); } done(null, list); }); }, function (err, result) { if (err) { console.error(err); } }