Angular 棱角分明,承诺:Don';在批处理完成之前,不要退还承诺

Angular 棱角分明,承诺:Don';在批处理完成之前,不要退还承诺,angular,amazon-s3,es6-promise,angular-promise,Angular,Amazon S3,Es6 Promise,Angular Promise,TL;博士,我必须从S3中读取3个文件。我使用的是承诺,我不想让他们“回来”,直到他们都回来 我有代码,我用来读取S3的角度设置。看起来有点像这样: return new Promise((resolve, reject) => { const s3 = new AWS.S3({ apiVersion: '2006-03-01', params: { Bucket: this._bucketKey, Key: this._someKey

TL;博士,我必须从S3中读取3个文件。我使用的是承诺,我不想让他们“回来”,直到他们都回来

我有代码,我用来读取S3的角度设置。看起来有点像这样:

return new Promise((resolve, reject) => {
  const s3 = new AWS.S3({
    apiVersion: '2006-03-01',
    params: {
      Bucket: this._bucketKey,
      Key: this._someKey
    }
  });
  s3.config.update({credentials: AWS.config.credentials});
  s3.getObject((err, data) => {
    ...
     }
   });
 });
}

我想做的是,向函数传递一个S3键列表,然后让它在所有3个调用的数据之后返回,因为这个读取被包装在一个函数中

readMultipleKeys(s3Keys:[]): Promise<any> {
    data.forEach( value => {
       "read value key from S3"
   });

   // resolve after all the array items in data have been requested and returned
}
readMultipleKeys(s3Keys:[]):承诺{
data.forEach(值=>{
“从S3读取值键”
});
//请求并返回数据中的所有数组项后解析
}

非常感谢您提供的任何帮助

假设您有一个名为“getFileFromAws()”的方法,该方法接收S3key并执行http调用以从S3存储中获取文件。您期望的解决方案如下所示

getFileFromAws(s3Key){
//执行HTTP调用以获得如下所示的文件
//返回此.http.get(url,httpOptions.toPromise();
}
异步读取多个键(S3键:[]){
let files=wait Promise.all(s3Keys.map(key=>getFileFromAws(key));
console.log(文件);
//现在,如果向该方法传递了3个键,则files数组包含3个文件
//执行你的逻辑
}

我已经创建了一个显示Promise.all方法。

您是否尝试了
Promise.all