Как использовать функцию _.once () в lodash? - PullRequest
0 голосов
/ 06 июня 2019

Я пытался использовать функцию Once в lodash следующим образом:

_.once(pageTwoSegmentEvent);

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

Я также пытался импортировать только функцию Once из lodash, а не _

once(pageTwoSegmentEvent);

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

Но функция pageTwoSegmentEvent никогда не вызывается.Тем не менее, если я удаляю функцию Once, которая была обернута, и просто вызываю ее как обычно, тогда она работает, но вызывается слишком много раз.Кто-нибудь знает, как заставить работать функцию Once из lodash?

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Вы не используете _.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>
1 голос
/ 06 июня 2019

_.once возвращает функцию, поэтому вы должны вызвать возвращенную функцию

Попробуйте сделать

_.once(pageTwoSegmentEvent)();

(обратите внимание на круглые скобки в конце)

...