Javascript 拉姆达-然后,否则,最后?

Javascript 拉姆达-然后,否则,最后?,javascript,functional-programming,ramda.js,function-composition,Javascript,Functional Programming,Ramda.js,Function Composition,在Ramda中是否有一个“最终”实现,用于进行函数组合,并调用函数,而不管承诺的结果如何?我想做这样的事情: compose( finally(() => console.log("The promise resolved or rejected, who cares!")) fetchAsync(id) ) const finally = fn => compose( otherwise(() => fn()),

在Ramda中是否有一个“最终”实现,用于进行函数组合,并调用函数,而不管承诺的结果如何?我想做这样的事情:

compose(
    finally(() => console.log("The promise resolved or rejected, who cares!"))
    fetchAsync(id)
)
const finally = fn => compose(
        otherwise(() => fn()),
        andThen(() => fn())
);
如果不是的话,我想做这样的事情:

compose(
    finally(() => console.log("The promise resolved or rejected, who cares!"))
    fetchAsync(id)
)
const finally = fn => compose(
        otherwise(() => fn()),
        andThen(() => fn())
);

对此有什么想法吗?

之后调用
,然后在
之后调用
,否则无论结果如何
都会被调用,并最终充当
的角色

compose(
  andThen(() => console.log("The promise resolved or rejected, who cares!")),
  otherwise(() => console.log('failed')),
  fetchAsync(id)
)

我不认为
否则
在这种情况下就足够了,因为它只在失败时调用。相反,
.finally
不管发生什么都会被调用-

const effect=f=>x=>
(f(x),x)
常量日志=标签=>
效果(x=>console.log(标签,x))
常量错误=标签=>
效果(x=>console.error(标签,x))
常数测试=p=>
P
。然后(记录(“已解决”))
.catch(错误(“拒绝”))
.最后(日志(“您将始终看到此”))
测试(承诺、解决(1))

test(Promise.reject(2))
我明白了,但是我需要有一个另外的测试。我只想在异步函数之后有一个函数。这个线程中也有一些问题,我想这是一个更好的方法。但它要求所使用的promise实现最终支持(情况并非总是如此)。