Javascript 如何使用angular将服务功能数据返回到组件?
我有一个具有s3 bucket上传功能的服务,我能够将图像上传到s3。但我无法将信息从服务层返回到组件 你能帮我一下吗 服务。ts: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:
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(...)