Комментарии 3
Этот код получается настолько запутанным, что в нём совершенно не хочется копаться, если надо будет что-то исправить или дополнить.
Собственно, в приведенных исходниках — ошибки, и отлавливать их через весь этот resolver hell уже очень неприятно.
А я всего-то хотел посмотреть, что будет с вот этим
style: { ...component.style, ...callResolvers(component, styleResolvers.map(enhancedResolve)), },
если, например, резольверы будут чуть-чуть конфликтовать между собой или вызовутся не в том порядке, в котором перечислены.
Возможно, я ошибаюсь, но мне пока кажется, что такой стиль написания — лёгкий способ свихнуться. Поправьте, сеньоры.
+6
function makeInjectContext(context) {
return function (callback) {
return function (...args) {
let result = callback(...args)
if (typeof result === 'function') {
// Call it again and inject additional options
result = result(context)
}
return result
}
}
}
Если рябит в глазах от скобок:
const makeInjectContext = context => callback => (...args) => {
let result = callback(...args)
if (typeof result === 'function')
// Call it again and inject additional options
result = result(context)
return result
}
if (displayTimestamp === true) {
Фу-фу.
if (Array.isArray(resolvers.base)) baseResolvers = resolvers.base
else baseResolvers = [resolvers.base]
Первая мысль,
const baseResolvers = Array.isArray(resolvers.base)
? resolvers.base
: [resolvers.base]
А вторая мысль вот какая:
if (!Array.isArray(resolvers.base))
throw new Error('Wrong type for resolvers.base.')
Не должно быть никаких плавающих типов.
+4
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Возможности функций, возвращающих другие функции в JavaScript