Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用angular将服务功能数据返回到组件?_Javascript_Angular_Typescript_Amazon S3_Aws Sdk - Fatal编程技术网

Javascript 如何使用angular将服务功能数据返回到组件?

Javascript 如何使用angular将服务功能数据返回到组件?,javascript,angular,typescript,amazon-s3,aws-sdk,Javascript,Angular,Typescript,Amazon S3,Aws Sdk,我有一个具有s3 bucket上传功能的服务,我能够将图像上传到s3。但我无法将信息从服务层返回到组件 你能帮我一下吗 服务。ts: async uploadFile(file, path): Promise<any> { const contentType = file.type; const bucket = new S3( { accessKeyId: 'My Access Key', secretAccessKey:

我有一个具有s3 bucket上传功能的服务,我能够将图像上传到s3。但我无法将信息从服务层返回到组件

你能帮我一下吗

服务。ts:

async uploadFile(file, path): Promise<any> {
    const contentType = file.type;
    const bucket = new S3(
      {
        accessKeyId: 'My Access Key',
        secretAccessKey: 'My Secret Key',
        region: 'eu-west-1'
      }
    );
    const params = {
      Bucket: 'sangram-adaptive',
      Key: path + '/' + file.name,
      Body: file
    };
    
    await bucket.upload(params, function (err, data) {
      if (err) {
        console.log('Error', err);
        return err;
      }

      if (data) {
        console.log('Successfully uploaded', data); // i am getting result after upload
        this.fileData = data;
        return this.fileData; 
      }
    });
  }

功能
bucket.upload
返回哪种类型

你不应该用以下方式来称呼它:

await bucket.upload(...)

如果它返回承诺?

请考虑修改
uploadFile
以返回承诺,如下所示:

上传文件(文件,路径):承诺{
const contentType=file.type;
const bucket=new S3(
{
accessKeyId:“我的访问密钥”,
secretAccessKey:“我的密钥”,
地区:“欧盟-西部-1”
}
);
常量参数={
Bucket:'sangram adaptive',
Key:path+'/'+file.name,
正文:文件
};
返回新承诺((解决、拒绝)=>{
bucket.upload(参数,(错误,数据)=>错误?拒绝(错误):解析(数据))
})
}

您没有唤醒
存储桶。上载
和上载文件不是异步文件function@RafiHenig更新了我的问题。我正在使用wait.
Fbucket
我在哪里可以得到?
bucket.upload
不是返回承诺,而是接受回调,因此我的解决方案是使用承诺对象扭曲它。。。
await bucket.upload(...)