【发布时间】:2018-12-01 01:32:31
【问题描述】:
我正在开发一个 Angular 组件。在打字稿文件中的一个方法中,我正在使用 headObject() 方法访问 AWS S3 对象。在该方法的回调函数中,如果 headObject() 方法失败,我希望能够再次调用外部方法。似乎我应该使用“胖箭头”运算符来构造方法来引用外部方法的 this 变量,但我无法找出正确的方法。如果有更好的方法,请指出我的方向。
getNewPass = (parameter) => {
const bucket = new S3({
accessKeyId: '/*************/',
secretAccessKey: '/*************/',
region: '/*************/'
});
const params = {
Bucket: '/*************/',
Key: /*************/
}
bucket.headObject(params, function (err, data) {
if (err && err.code === 'NotFound') {
// HERE is where the issue is
this.getNewPass(parameter);
} else {
bucket.getSignedUrl('getObject', params, function(err, data) {
if (err) {
console.log('Error retrieving file: ', err);
return false;
} else {
console.log('Successfully retrieved file.', data);
window.location.href = data;
return true;
}
});
}
});
}
我已经屏蔽了一些敏感信息并更改了变量名称,但除此之外,这就是我正在处理的内容。感谢您的帮助。
【问题讨论】:
标签: angular typescript amazon-s3 this