2
With Javascript (Ecmascript-6), when calling a method via callback, if this method uses another method the following error occurs:
Uncaught Typeerror: Cannot read Property 'nome_do_metodo_secundario' of Undefined
If the method is called directly works perfectly. But if it is called via callback does not work. If you do not have a secondary method, it also works.
How to call via callback, a class method, where this method uses other methods?
Below a code snippet reproducing the error:
class TestOne{
metodoPrincipal(str_input){
this.metodoSecundario(str_input);
}
metodoSecundario(parametro){
alert("OK: " + parametro);
}
}
function chamaViaCallback(callback, msg){
callback(msg);
}
var test_objeto = new TestOne(); // instancia o objeto
// funciona chamando diretamente um método secundário
test_objeto.metodoPrincipal('Testando método secundário chamado diretamente!');
// funciona via callback chamando diretamente o método secundário
chamaViaCallback(test_objeto.metodoSecundario, 'método único chamado via callback!');
// não funciona via callback chamando método secundário
chamaViaCallback(test_objeto.metodoPrincipal, 'método secundário chamado via callback!');
Note: not only do you need the function arrow to make the second alternative, but I liked the idea of wrap with Arrows
– Klaider
@stderr, thank you so much for your help. It worked fine (+1)
– Allan Andrade