我试图理解为什么__
在这段代码中工作正常:
function editAddress (id, addressId, model) {
return BusinessService
.getById(id)
.then(unless(
() => checkUrlValue(addressId, model.id),
rejectWithError(InvalidData.error('Invalid address data: Address id is different from request'))
))
.then(pipe(
updateModel(__, 'addresses', model, 'id', addressId),
juxt([ always(id), identity ]),
apply(BusinessService.editById)
))
.then(pipe(
prop('addresses'),
find(propEq('id', addressId))
))
}
function updateModel (entity, property, model, attr, id) {
return evolve({
[property]: pipe(
juxt([
findIndex(propEq(attr, id)),
pipe(
find(propEq(attr, id)),
mergeLeft(model)
),
identity
]),
apply(update)
)
})(entity)
}
由于不调用名为(updateModel)的函数,为什么__
在这种情况下仍然可以工作?
答案 0 :(得分:2)
updateModel
不会被管理,但是它会返回一个被称为evolve
的函数的结果。第一个电话传入:
{
[property]: pipe(
juxt([
findIndex(propEq(attr, id)),
pipe(
find(propEq(attr, id)),
mergeLeft(model)
),
identity
]),
apply(update)
)
}
然后使用entity
调用此进化调用的结果,在您的情况下为__。如果不了解evolve
的内幕,就不可能再进一步了解代码了。