3
I’m using Gopherjs, and in it there are two ways to perform a function, via Call()
or via Invoke()
. Initially it was using a code similar to this:
js.Global.Get("navigator").Get("credentials").Get("store").Invoke(
password.New(js.M{"id": id, "password": pass, "name": email}),
)
But it had as a result:
Uncaught (in Promise) Typeerror: Failed to execute 'store' on 'Credentialscontainer': Illegal Invocation at :1:36
So I decided to test the Call
, using js.Global.Get("navigator").Get("credentials").Call("store", ...)
, that worked, but I was curious because the Invoke
didn’t work.
In Javascript, it seems that you have a similar behavior if you do:
x = window.navigator.credentials.store;
x(new PasswordCredential({id: "a", password:"b"}))
Or, yet to be done:
window.navigator.credentials.store.call(
new PasswordCredential({id: "a", password:"b"})
)
In both cases it results in the error of Illegal invocation
.
Why does this error occur? Because it only occurs with some functions/objects? There is a way to identify if there is a way to use the Invoke
(or, the Call
Javascript? ) before causing the error?