如何使用异步功能,AWS和循环

时间:2018-09-12 22:40:37

标签: node.js

所以我在其中有一些嵌套层

`get data from database
  -for each data get file from s3

    -for each file get specific items

        -for each item check condition and change value of item.

          -for each item that changes - updatefile. 

` 我担心的是,由于每次我检查子项/子项时我都会在s3上更新文件,因此我会覆盖其他更改。

我试图弄清楚如何等到所有项目都更改后再一次更新文件。

我该怎么做?让我知道是否有意义。这是代码。

`async.each(data,function(element,callback){     console.log(element.mediaId);

s3.getObject({Bucket: mediaBucketName, Key: element.mediaId + '/manifest'}, function(err,data){
  if(err)
  {
    console.log(err);
  }
  else {
    var manifest = JSON.parse(data.Body.toString('utf-8'));

    async.each(Object.keys(manifest),function(element, callback){

      async.each(manifest[element].videos,function(element2, callback2){


        s3.headObject({Bucket: mediaBucketName, Key: 'dash/' + element2.name}, function(response){
          if(err)
          {
            console.log("media still be processing");
          }
          else {
            console.log("components are live");
            //var components = this.request.params.Key.split('/');
          }


        });
        callback2();


      },function(){
        console.log("finished processing single file");
      });

      callback();

    },function(){
      console.log("Finished iterating through folders");
    });

  }
});


callback();

},函数(){     console.log(“完成清单文件的循环”);   });`

0 个答案:

没有答案