Tenho uma função principal, no final da qual é chamada uma outra de callback, que é passada como parâmetro da principal.
Como a callback pode ser qualquer outra função, antes de a chamar eu quero certificar-me que ela existe e está disponível para ser executada, para não provocar erros de JS.
Andei às voltas no Google e descobri que isso é feito com typeof funcaoCallback==='function'. Então:
Código :
Agora os pormenores:
1) se eu não passar à função principal o nome de uma função de callback para executar, o script alerta sobre o erro e corre tudo como esperado
2) se eu passar o nome da função e ela existir, também corre tudo bem.
3) se eu passar o nome da função mas ela não existir, há um erro de JS que eu não conseguir determinar, e nada do que está na função principal é executado.
Ora, isto não é um grande problema se eu estiver a chamar funções de JS que estão no meu código, porque a presença delas depende de mim. Mas, e se elas estiverem fora da minha plataforma?
Em todo o caso, gostava de saber o que é que estou a fazer mal.
Como a callback pode ser qualquer outra função, antes de a chamar eu quero certificar-me que ela existe e está disponível para ser executada, para não provocar erros de JS.
Andei às voltas no Google e descobri que isso é feito com typeof funcaoCallback==='function'. Então:
Código :
function principal( parametro , funcaoCallback ){
alert('vou começar o script');
if ( typeof funcaoCallback === 'function' ){
alert('existe');
funcaoCallback();
}
else{alert('não existe essa função de callback, ou não foi indicada uma.');}
alert ('terminou');
}
alert('vou começar o script');
if ( typeof funcaoCallback === 'function' ){
alert('existe');
funcaoCallback();
}
else{alert('não existe essa função de callback, ou não foi indicada uma.');}
alert ('terminou');
}
Agora os pormenores:
1) se eu não passar à função principal o nome de uma função de callback para executar, o script alerta sobre o erro e corre tudo como esperado
2) se eu passar o nome da função e ela existir, também corre tudo bem.
3) se eu passar o nome da função mas ela não existir, há um erro de JS que eu não conseguir determinar, e nada do que está na função principal é executado.
Ora, isto não é um grande problema se eu estiver a chamar funções de JS que estão no meu código, porque a presença delas depende de mim. Mas, e se elas estiverem fora da minha plataforma?
Em todo o caso, gostava de saber o que é que estou a fazer mal.