【问题标题】:Looping through functions until value is not null, ramda js [duplicate]循环遍历函数直到值不为空,ramda js [重复]
【发布时间】:2019-08-17 07:15:51
【问题描述】:

我想要一个在函数返回非空值时返回值的函数。

const getSomeValue = R.filter(...);

const getSomeOtherValue = R.propEq('name');

R.until 函数可能是要使用的函数。

一些伪代码:

R.until(R.isNotNull, R...[getSomeValue, getSomeOtherValue]);

所以遍历函数,直到返回的值不为空。

我在 Ramda 文档中找不到任何合适的函数来执行此操作。

有什么想法吗?

【问题讨论】:

  • 你能提供一个输入/输出的小例子吗?这将有助于了解您想要实现的目标
  • 嗯,propEq('name')filter 都不会返回 null。请提供您的实际功能和输入。

标签: javascript ramda.js


【解决方案1】:

如果您不介意忽略虚假值(false、未定义、0 等),那么您可以使用 R.either

const first = () => {
  console.log("first");
  return null;
};
const second = () => {
  console.log("second");
  return {a: "banana"};
};
const third = () => {
  console.log("third");
  return {a: "chicken"};
};

const fn = R.either(first, second, third);
console.log(fn());
<script src="https://unpkg.com/ramda@0.26.1/dist/ramda.min.js"></script>

【讨论】:

    猜你喜欢
    • 2018-04-01
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 2021-09-06
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多