Paho niet inschrijven

Probleem

AMQJS0005E Interne fout. Foutmelding: Kan eigenschap 'show' van ongedefinieerd niet lezen

Deze fout wordt sporadisch getoond, vooral wanneer u Shift-Reload de hele pagina.

Oplossing

Ik heb een Vue.js Plugin om "toast" berichten te tonen (Vue.toasted). Ik gebruik het momenteel voor debug doeleinden.

Alles werkte aanvankelijk goed, omdat mijn code werd uitgevoerd nadat Vue was geïnitialiseerd en de hele pagina was geladen.

Omdat ik het MQTT abonnement wil versnellen, heb ik code ingevoerd om het abonnement eerder te starten.

Dit is waar ik tegen deze fout aanliep. Zoals het geschreven was, leek het een race conditie, omdat het niet consistent was.

het blijkt dat mijn geroosterde berichten, die ik erin stopte voor debug, de problemen veroorzaakten.

functie info(msg){
     console.log(msg);
     /*if (typeof Vue !== 'undefined') {
         Vue.toasted.show(msg, {
             actie : {
                 tekst : "OK",
                 onClick : (e, toastObject) => {
                     toastObject.goAway(0);
                 }
             }
         });
     } anders {
         console.log("... Vue nog niet beschikbaar ...");
     }*/   
}

Zoals je ziet, leidde het verwijderen van de Vue.toasted.show ertoe dat de code OK presteerde.

Daarom: als PAHO foutmeldingen geeft, kan dat te maken hebben met andere code die je hebt ingevoerd, niet noodzakelijk met de interne Paho toestand.

Werkende code:

functie info(msg){
     console.log(msg);
     indien (typeof Vue !== 'undefined' && typeof Vue.toasted !== 'undefined') {
         Vue.toasted.show(msg, {
             actie : {
                 tekst : "OK",
                 onClick : (e, toastObject) => {
                     toastObject.goAway(0);
                 }
             }
         });
     } anders {
         console.log("... Vue nog niet beschikbaar ...");
     }
}

Deze code werkt, omdat het ook controleert of Vue.toasted is geïnitialiseerd.