Estou tentando integrar o Google Pay como um componente em um aplicativo. Preciso carregar o arquivo Javascript do Google Pay antes de executar qualquer ação. É isso que estou fazendo:
onMounted(()=>{
const scripts = [
"https://pay.google.com/gp/p/js/pay.js",
];
// Append the pay.js script to the <head> tag
scripts.forEach(script => {
let tag = document.createElement("script");
tag.setAttribute("src", script);
tag.setAttribute("async", true);
document.head.appendChild(tag);
});
//Check if Google Pay exists
function isGooglePayReady(){
if('google' in window && Object.keys(window.google).length) {
loadGooglePay()
}
}
// Have to currently use a setTimeout to wait for script to load
setTimeout(()=> isGooglePayReady(), 500);
Eu configurei o tempo limite 500
arbitrariamente porque não sei quanto tempo leva para o https://pay.google.com/gp/p/js/pay.js
script carregar e ficar disponível.
Existe uma maneira melhor de esperar o script carregar e ficar pronto do que usar uma setTimeout()
função?
Sim, em vez de usar
setTimeout()
, você pode escutar oload
evento do script para garantir que ele foi totalmente carregado antes de executar sualoadGooglePay()
função.Explicação:
onload
evento : Isso garante queloadGooglePay()
ele seja executado somente após o script ser totalmente carregado.loadGooglePay()
imediatamente.Este método é mais confiável
setTimeout()
e garante que o script seja carregado apenas uma vez, melhorando a eficiência