Paho falha em subscrever

Problema

AMQJS0005E Erro interno. Mensagem de erro: Não é possível ler a propriedade 'mostrar' de indefinido

Este erro é mostrado esporadicamente, especialmente quando você Shift-Reload a página inteira.

Solução

Tenho um Plugin Vue.js para mostrar mensagens "torradas" (Vue.toasted). Actualmente utilizo-o para fins de depuração.

Tudo funcionou bem inicialmente, pois meu código foi executado depois que Vue foi inicializado e a página inteira carregada.

Querendo acelerar a assinatura do MQTT, coloquei um código para lançar a assinatura mais cedo.

Foi aqui que me deparei com este erro. Como está escrito, parecia ser uma condição racial, pois não era consistente.

acontece que as minhas mensagens torradas, que eu pus para depurar, estavam a causar o problema.

informação da função(msg){
     console.log(msg);
     /*if (tipo de Vue !== 'indefinido') {
         Vue.toasted.show(msg, {
             ação : {
                 texto : 'OK',
                 onClick : (e, toastObject) => {
                     toastObject.goAway(0);
                 }
             }
         });
     {\i1} else {
         console.log("... Vue ainda não disponível...");
     }*/   
}

Como você vê, remover o Vue.toasted.show levou o código a funcionar bem.

Portanto: se a OPAS lançar mensagens de erro, pode estar relacionado a algum outro código que você colocou, não necessariamente ao estado interno do Paho.

Código de trabalho:

informação da função(msg){
     console.log(msg);
     if (typeof Vue !== 'undefined' && typeof Vue.toasted !== 'undefined') {
         Vue.toasted.show(msg, {
             ação : {
                 texto : 'OK',
                 onClick : (e, toastObject) => {
                     toastObject.goAway(0);
                 }
             }
         });
     {\i1} else {
         console.log("... Vue ainda não disponível...");
     }
}

Este código funciona, pois também verifica se o Vue.toasted foi inicializado.