1
비동기 메서드에서 호출 될 때 클래스 인스턴스를 참조하는 방법입니다.es2017에서 비동기 메서드에서 액세스 할 때 'this'가 정의되지 않았습니다.
class Senders {
callSendAPI() {
//Some code here
}
sendText() {
this.callSendAPI();
}
async sendCards() {
var dbpromise = await db.call();
console.log('this= ', this);
this.callSendAPI();
}
}
export {Senders};
이 정의되지 않은
바벨 또는 다른 것을 사용하고 있습니까? –
이면 해당 변환기의 불쾌한 버그처럼 들릴 수 있습니다. –
'sendCards()'는 어떻게 불려지나요? 이 코드는'sendCards()'안에'this'의 값을 결정하기 때문에 보여줄 필요가 있습니다. 문제는 사용자가 표시하지 않는 호출 코드에서 발생할 가능성이 큽니다. 나는 obj.sendCards를 콜백으로 전달하고 그것이 작동하지 않는 이유를 추측 할 것이다. 내 추측이 맞다면 [클래스 스코프에서 "this this"로 콜백을하는 법] (http://stackoverflow.com/questions/15048775/how-to-get-callback-to-work-with-this)을 참조하십시오. - 클래스 - 범위/15048802 # 15048802). – jfriend00