Господа, подскажите пожалуйста.
Прочитал интересную статью на хабре
Борьба с грязными побочными эффектами в чистом фун...
И остался один неведомый вопрос, там пишется про метод join
function Effect(f) {
return {
map(g) {
return Effect(x => g(f(x)));
},
runEffects(x) {
return f(x);
}
join(x) {
return f(x);
}
}
}
const userBioHTML = Effect.of(window)
.map(x => x.myAppConf.selectors['user-bio'])
.map($)
.join()
.map(x => x.innerHTML);
Но он не работает, потому что он должен возвращать объект, в возвращает значение, смотрел оригинал статьи тоже самое. Может автор опечатался?
Вот вроде сделал рабочий вариант, когда join() выполняет все предыдущие функции, и результатом возвращает новый объект Effect уже с готовым значением.
join(x) {
const j = this.runEffects(x);
return Effect(() => j);
}
Но может я что-то недопонял, или как должно быть на самом деле? Спасибо.