gpt4 book ai didi

functional-programming - 当中间的 promise 中的 promise 检查授权时,如何管道功能?

转载 作者:行者123 更新时间:2023-12-04 00:35:14 25 4
gpt4 key购买 nike

我正在尝试将一些函数组合在一起:

compose = (...fns) => fns.reduce((f, g) => (...args) => f(g(...args)));

checkAuthorization 返回检查用户是否获得授权的 promise 。buildParams 接收 someRequestData,并将结果通过管道传递给 searchItem

    checkAuthorization()
.then(() => {
compose(
searchItem,
buildParams
)(someRequestData)
}, (e) => {
handleError(e)
})

我觉得还可以,但我希望有一个更优雅的可读性外观,比如:

    compose(
searchItem,
checkAuthorization
buildParams
)(someRequestData)

所以会发生什么:1)构建参数2)检查授权3) 搜索项目

有什么建议吗?

最佳答案

不,那是不可能的,因为 checkAuthorisation 不接收和传递参数。即使你重写它来做到这一点,它仍然会很奇怪,读者会认为你正在构建应该检查其授权的参数。所以不要那样做 - 你有一个非线性流,试图强制它进入某种线性组合是不好的。

顺便说一句,无论如何,我建议您在立即调用该函数时避免使用 compose:

checkAuthorization().then(() =>
searchItem(buildParams(someRequestData))
, e =>
handleError(e)
);

或者也许

checkAuthorization().then( compose(searchItem, buildParams, ()=>someRequestData)
, handleError ); // ^^^^ "const"

关于functional-programming - 当中间的 promise 中的 promise 检查授权时,如何管道功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44370024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com