Я написал кусок кода и плююсь от того, насколько он противный.
Как сделать лучше?
var token = ""
var cook=cookie.parse(document.cookie)
if (cook&&cook.ptq) token=cook.ptq;
if (token)
{
axios.get(BACKEND_URL+'/complete',{params:{
token
}}).then(d=>d.data).then(console.log)
}
Тут есть два момента.
1. Во-первых, я хочу избавиться как-то от цепочек условий
Хочу писать выражения в духе
cookie.parse(document.cookie).ptq
, а то и более к сложные каскады свойств a.b.c.d.e вызывать без
if (a && a.b && a.b.c && a.b.c.d) { }
Слышал что какой-то костыль на эту тему есть в lodash, не уверен что достаточно изящный.
2. Во-вторых, я хочу найти более изящный способ прокидывать внутрь if значение выражения которое стояло в условии. Задавать переменную, проверять ее, потом использовать внутри эту переменную вызывает эстетическую боль:
var complicatedObject = (...) //какое-то длинное выражение. Поиск какого-нибудь значения в выборке например.
if (complicatedObject.key=="someValue")
{
doSmth(complicatedObject)
}
Есть ли какие-то штуки в духе примера ниже?
(...someComplicatedExpression...)
.if (v=>v.key=='someValue')
.then(v=>{ doSmth(v) })