Вы не звоните cb
нигде внутри своего класса. Кроме того, ваш экземпляр не может иметь то же имя, что и класс.
Просто выполните cb
внутри baz
.
class WorkHard {
constructor() {
this.value_1 = []
this.value_2 = []
}
foo(args) {
this.value_1 = args;
console.log('foo called');
return this;
}
baz(cb) {
this.value_1 = null;
this.value_2 = null;
cb();
return this;
}
zoo(args) {
console.log('zoo called');
this.value_2 = args;
return this;
}
}
const workHard = new WorkHard();
workHard.foo('TestValue_1').baz(() => {
console.log('This is baz() method content.');
}).zoo('TestValue_2')
Если вы хотите, чтобы обратный вызов управлял потоком цепочек, имейте в виду, что обратный вызов сам по себе ничего не возвращает, поэтому вам также придется возвращать этот вызов функции вместо this
// inside WorkHard
baz(cb) {
this.value_1 = null;
this.value_2 = null;
return cb(this);
}
workHard.foo('TestValue_1').baz((instance) => {
console.log('Workhard visible variables are', instance);
return instance;
}).zoo('TestValue_2');