Я тестирую свой код с узлом v8.9.4
Я хочу использовать методы класса в моей цепочке обещаний.Но это не с ошибкой: (node:68487) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'attr' of undefined
const fsp = require('fs-promise');
class MyClass {
constructor() {
this.attr = 'value';
}
promiseMe() {
console.log(this.attr);
}
main() {
fsp.readdir('.').then(this.promiseMe);
}
}
new MyClass().main();
Поэтому я пытаюсь использовать функции стрелок в качестве методов класса.Но определение функции стрелки как метода класса синтаксически неверно: Unexpected token =
promiseMe = () => {
console.log(this.attr);
}
Это работает, но это действительно уродливо:
const fsp = require('fs-promise');
class MyClass {
constructor() {
this.attr = 'value';
this.promiseMe = () => {console.log(this.attr);}
}
main() {
this.promiseMe();
}
}
new MyClass().main();
Так как можноЯ использую методы класса в обещаниях?
Есть еще один вопрос относительно этой темы: Как использовать функции стрелок (открытые поля класса) в качестве методов класса? К сожалению, это не работаетс моей настройкой node.js.