The following function underbar function was rewritten by peer of mine like so:
var once = function(func) {
var alreadyCalled = false;
var result;
return function() {
if (!alreadyCalled) {
result = func.apply(this, arguments);
alreadyCalled = true;
}
return result
};
};
Here's how I interpret it. It's a function that takes another function and returns yet another function. If alreadyCalled
is false
then set result = func.apply(this,arguments)
Can someone please help me understand in a simple way what func.apply(this,arguments)
is doing in the context of this function. I can't seem to figure it out!
The following function underbar function was rewritten by peer of mine like so:
var once = function(func) {
var alreadyCalled = false;
var result;
return function() {
if (!alreadyCalled) {
result = func.apply(this, arguments);
alreadyCalled = true;
}
return result
};
};
Here's how I interpret it. It's a function that takes another function and returns yet another function. If alreadyCalled
is false
then set result = func.apply(this,arguments)
Can someone please help me understand in a simple way what func.apply(this,arguments)
is doing in the context of this function. I can't seem to figure it out!
-
store
this
in variable previous return function... – Bhojendra Rauniyar Commented Feb 12, 2015 at 4:59 - 2 MDN Apply – epascarello Commented Feb 12, 2015 at 4:59
2 Answers
Reset to default 8remove async await from
React.useEffect(async () => { await something},[]);
then it works just remove async await
React.useEffect(() => { something},[]);
I know your code is different but i got the same issue i remove async from all of the project which was used within useEffect and i dint saw the error again anymore
There are two implicit parameters on every function: this
and arguments
.
The apply
method on the Function object lets you invoke it with those parameters explicitly set.
So what will happen here is that you a get a function wrapping another, and when you call it it will pass down the arguments to the original. It will also keep track if it was called and its result.