Рискованный вопрос, подлежащий суждению.Я работаю над проектом с Ramda.js.И я вижу много ifElse
звонков по всему коду.
const getEvent = R.ifElse(
fireable,
R.always(sendAnalyticsEvent),
R.always(R.always(undefined))
);
Действительно ли это стоит усилий, чтобы обернуть логику в функциональное условие, подобное этому?Есть ли выгода?
Если в конечном итоге Рамда просто абстрагирует троичную операцию, и мы возвращаем неопределенное при ложном совпадении.
Рамдас ifElse
var ifElse = _curry3(function ifElse(condition, onTrue, onFalse) {
return curryN(Math.max(condition.length, onTrue.length, onFalse.length),
function _ifElse() {
return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);
}
);
});
export default ifElse;
Это похоже на anitpattern вмир FP, всегда возвращающий undefined или в некоторых случаях null
R.ifElse(hasUrl, promptToShare, R.always(null))
Независимо от сомнительного возврата undefined, не будет ли использование троичных операторов более идиоматичным для сообщества javascript?
hasUrl(urlObject) ? promptToShare() : null
Это кажется мне более кратким и разборчивым, я хочу провести рефакторинг.Но это может быть связано с моей наивностью мира FP.