Can not debounce action within other action in Vuex

Multi tool use
I'm trying to debounce anything within an Action, it gets swallowed in one way or another...
Take this (pseudo) code:
import { debounce } from "lodash";
const actions = {
debounceSomeLogging ({ dispatch }, text) {
console.log("Outside debounced function.");
debounce(function() {
console.log("Inside debounced function.");
dispatch("doRealThing");
}, 1000);
},
doRealThing({ commit }) {
// Whatever
}
}
When I call the action, I see the Outside debounced function
, but I can not see the other logging and the other action does not get triggered.
Anyone have experience with this and can point me in the right direction?
vue.js vuejs2 lodash vuex vuex-modules
add a comment |
I'm trying to debounce anything within an Action, it gets swallowed in one way or another...
Take this (pseudo) code:
import { debounce } from "lodash";
const actions = {
debounceSomeLogging ({ dispatch }, text) {
console.log("Outside debounced function.");
debounce(function() {
console.log("Inside debounced function.");
dispatch("doRealThing");
}, 1000);
},
doRealThing({ commit }) {
// Whatever
}
}
When I call the action, I see the Outside debounced function
, but I can not see the other logging and the other action does not get triggered.
Anyone have experience with this and can point me in the right direction?
vue.js vuejs2 lodash vuex vuex-modules
1
debounce does not run your function but creates a new one which is when called delays the invoking of your inner function. So you need to assign the return value of debounce and call it from somewhere...
– nemesv
Dec 30 '18 at 11:42
Okay, that seemed to be the problem. Thank you a lot, I will add it as an answer.
– Titulum
Dec 30 '18 at 12:08
add a comment |
I'm trying to debounce anything within an Action, it gets swallowed in one way or another...
Take this (pseudo) code:
import { debounce } from "lodash";
const actions = {
debounceSomeLogging ({ dispatch }, text) {
console.log("Outside debounced function.");
debounce(function() {
console.log("Inside debounced function.");
dispatch("doRealThing");
}, 1000);
},
doRealThing({ commit }) {
// Whatever
}
}
When I call the action, I see the Outside debounced function
, but I can not see the other logging and the other action does not get triggered.
Anyone have experience with this and can point me in the right direction?
vue.js vuejs2 lodash vuex vuex-modules
I'm trying to debounce anything within an Action, it gets swallowed in one way or another...
Take this (pseudo) code:
import { debounce } from "lodash";
const actions = {
debounceSomeLogging ({ dispatch }, text) {
console.log("Outside debounced function.");
debounce(function() {
console.log("Inside debounced function.");
dispatch("doRealThing");
}, 1000);
},
doRealThing({ commit }) {
// Whatever
}
}
When I call the action, I see the Outside debounced function
, but I can not see the other logging and the other action does not get triggered.
Anyone have experience with this and can point me in the right direction?
vue.js vuejs2 lodash vuex vuex-modules
vue.js vuejs2 lodash vuex vuex-modules
asked Dec 30 '18 at 11:31


TitulumTitulum
6401516
6401516
1
debounce does not run your function but creates a new one which is when called delays the invoking of your inner function. So you need to assign the return value of debounce and call it from somewhere...
– nemesv
Dec 30 '18 at 11:42
Okay, that seemed to be the problem. Thank you a lot, I will add it as an answer.
– Titulum
Dec 30 '18 at 12:08
add a comment |
1
debounce does not run your function but creates a new one which is when called delays the invoking of your inner function. So you need to assign the return value of debounce and call it from somewhere...
– nemesv
Dec 30 '18 at 11:42
Okay, that seemed to be the problem. Thank you a lot, I will add it as an answer.
– Titulum
Dec 30 '18 at 12:08
1
1
debounce does not run your function but creates a new one which is when called delays the invoking of your inner function. So you need to assign the return value of debounce and call it from somewhere...
– nemesv
Dec 30 '18 at 11:42
debounce does not run your function but creates a new one which is when called delays the invoking of your inner function. So you need to assign the return value of debounce and call it from somewhere...
– nemesv
Dec 30 '18 at 11:42
Okay, that seemed to be the problem. Thank you a lot, I will add it as an answer.
– Titulum
Dec 30 '18 at 12:08
Okay, that seemed to be the problem. Thank you a lot, I will add it as an answer.
– Titulum
Dec 30 '18 at 12:08
add a comment |
1 Answer
1
active
oldest
votes
As nemesv pointed out in a comment, the debounce
function does not call the inner function. So you need to call the debounce again, like so:
debounce(function() {
console.log("Inside debounced function.");
dispatch("doRealThing");
}, 1000)();
So, in short, it should look like this:
debounce(...)()
instead of like this debounce(...)
.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53977241%2fcan-not-debounce-action-within-other-action-in-vuex%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
As nemesv pointed out in a comment, the debounce
function does not call the inner function. So you need to call the debounce again, like so:
debounce(function() {
console.log("Inside debounced function.");
dispatch("doRealThing");
}, 1000)();
So, in short, it should look like this:
debounce(...)()
instead of like this debounce(...)
.
add a comment |
As nemesv pointed out in a comment, the debounce
function does not call the inner function. So you need to call the debounce again, like so:
debounce(function() {
console.log("Inside debounced function.");
dispatch("doRealThing");
}, 1000)();
So, in short, it should look like this:
debounce(...)()
instead of like this debounce(...)
.
add a comment |
As nemesv pointed out in a comment, the debounce
function does not call the inner function. So you need to call the debounce again, like so:
debounce(function() {
console.log("Inside debounced function.");
dispatch("doRealThing");
}, 1000)();
So, in short, it should look like this:
debounce(...)()
instead of like this debounce(...)
.
As nemesv pointed out in a comment, the debounce
function does not call the inner function. So you need to call the debounce again, like so:
debounce(function() {
console.log("Inside debounced function.");
dispatch("doRealThing");
}, 1000)();
So, in short, it should look like this:
debounce(...)()
instead of like this debounce(...)
.
answered Dec 30 '18 at 12:11


TitulumTitulum
6401516
6401516
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53977241%2fcan-not-debounce-action-within-other-action-in-vuex%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
gFk,bDZWqvSUsCkq TOS46f4v Qc8f0lSB9k n,J
1
debounce does not run your function but creates a new one which is when called delays the invoking of your inner function. So you need to assign the return value of debounce and call it from somewhere...
– nemesv
Dec 30 '18 at 11:42
Okay, that seemed to be the problem. Thank you a lot, I will add it as an answer.
– Titulum
Dec 30 '18 at 12:08