2017-03-15 12 views
-2

私はオブジェクトのオブジェクトを持っています。私たちはそのオブジェクトを繰り返し処理できます。最初の関数コールバックは2番目の関数working.Second関数コールバックは、次のオブジェクトを繰り返し来る。我々はasync.eachを使用することができますが、正常に動作しなくなりますnode.jsasync.eachはコールバック関数では機能しません

に取り組ん

Appliction。

async.each(result,function(item,callback){ 
    keys1 ='id' 
    keys2 ='resul' 
    var key1value = item[keys1] 
    var key2value = item[keys2] 
    var query = '{"query":{"query_string":{"query":"' + keys1 + ':' + key1value + ' AND ' + keys2 + ':' + key2value + '"}},"sort":{"_id":{"order":"asc"}}}' 
    client.search({ index: config.indexname, type: config.basetype, body: query }).then(function (data) { 
     if(err){ 
      callback(err); 
      return; 
      }else{ 
      if (data.hits.hits.length == 0) { 
       client.index({ index: config.indexname, type:config.basetype, body: data.hits.hits }, function (err, results) { 
        console.log("Inserted data"); 
        callback("inserted"); 
       }); 
      } else { 
       console.log("--- Response ---"); 
       var rows={} 
       rows=result[i]; 
       rows._catalogId = data.hits.hits[0]._source._catalogId; 
       rows._connectionId =data.hits.hits[0]._source._connectionId; 
       rows._dataImportId =data.hits.hits[0]._source._dataImportId; 
       var param = { index: config.indexname, type: config.basetype, id: data.hits.hits[0]._id, body: { doc:rows, doc_as_upsert: true } }; 
       client.update(param, function (err, results) { 
        console.log("updated data"); 
        callback("updated"); 
        }); 
       } 
      } 

    }); 
}); 
+0

コードを入力してください –

+0

Manan、plz help me。 – user2728653

+0

のようにエラーが発生しました。これは 'var key1value = result [0] ['id'] var key2value = result [0] ['resul']' var key1value = item ['id'] var key2value = item ['resul'] ' –

答えて

0

あなたがasync API for eachを読めば、あなたはそれが、この機能が並行して各項目にiterateeを適用するので、iteratee機能が順番に完了するという保証がないこと、

注意を言うでしょう。

したがって、オブジェクトは順番に処理されません。

関連する問題