我正在研究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;
}
});
}
});
}
我已经屏蔽了一些敏感信息,并更改了变量名,但否则,这就是我正在处理的内容。感谢您的帮助。
答案 0 :(得分:0)
弄清楚了。我使用“胖箭头”运算符将回调函数重新格式化为lambda函数,如以下示例所示:https://stackoverflow.com/a/48808669/5943974