gpt4 book ai didi

javascript - 无法将 parseInt 用作 ramdajs 的 ifElse 的 onTrue 或 onFalse 函数

转载 作者:行者123 更新时间:2023-12-01 02:46:57 26 4
gpt4 key购买 nike

我使用 ramdajs 的 ifElse 来读取查询参数,如下所示。

const page = ifElse(
identity,
Number.parseInt,
always(1)
)(this.ctx.request.query.page);

没成功。页面被记录为函数。不过,我确实找到了让它发挥作用的方法。我将 parseInt 包装为普通函数

const page = ifElse(
identity,
(s) => Number.parseInt(s),
always(1)
)(this.ctx.request.query.page);

然后就成功了。它们不是一样的吗?

这是 ramdajs repl 的结果:repl result

最佳答案

Then it worked. Aren't they the same?

不,有两个区别

  1. Number.parseInt 需要两个参数,因此数量为 2,而您定义的箭头函数的数量为 1。

根据curryN的来源,如果arity为1则执行该方法。

解决方案,将 Number.parseInt 替换为 Number它应该可以工作working link

  • Number.parseInt 是一个函数引用,具有自己的 thisarguments 对象,但是箭头函数没有自己的参数,因此有 difference between how apply and call work on arrow function
  • 关于javascript - 无法将 parseInt 用作 ramdajs 的 ifElse 的 onTrue 或 onFalse 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47196675/

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