如何在lodash中使用_.once()函数?

时间:2019-06-06 18:42:15

标签: javascript lodash

我试图在lodash中使用一次函数,如下所示:

_.once(pageTwoSegmentEvent);

_.once(() => {
  pageTwoSegmentEvent();
})

我也尝试过从lodash仅导入一次函数,而不是_

once(pageTwoSegmentEvent);

once(() => {
  pageTwoSegmentEvent();
});

但是函数pageTwoSegmentEvent实际上从未被调用。但是,如果我删除了它包装的一次函数,只是像平常一样调用它,那么它就起作用了,但是却被调用了太多次。有谁知道如何从lodash获得一次功能?

2 个答案:

答案 0 :(得分:1)

_.once返回一个函数,因此您必须调用返回的函数

尝试做

_.once(pageTwoSegmentEvent)();

(请注意最后的括号)

答案 1 :(得分:1)

您不会像这样使用_.once。您使用_.once返回的新函数。

function foo() {
  console.log("foo");
}

const oncedFoo = _.once(foo);

oncedFoo();
oncedFoo();
oncedFoo();
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.core.min.js"></script>