7
votes

Qu'est-ce qui a causé le "runtime.lastError non vérifié: le port de message s'est fermé avant qu'une réponse ne soit reçue." Attention?

J'ai cherché mais il s'agit de personnes qui se plaignent du bogue. De nombreux articles disent que vous devriez vérifier toutes vos extensions.

Cependant, c'est quelque chose que j'ai rencontré lorsque je développe une extension.

Voici comment cela se passe:

J'ai un auditeur sur background.js:

track('something');
function track(msg){
  chrome.runtime.sendMessage({opt: msg}, function(response) {
    console.log(response);
  });
}

Et voici le déclencheur dans ma page d'options:

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
  console.log('get:', request);
  if (request.hasOwnProperty('opt')) {
    trackPage('opt/' + request.opt);
  }
  return Promise.resolve("");
});


5 commentaires

L'API des extensions Chrome ne prend pas en charge les promesses. Utilisez l'API comme indiqué dans la documentation ou passez à la méthode moderne avec le polyfill WebExtension de Mozilla.


Souhaitez-vous s'il vous plaît partager plus d'informations sur les deux méthodes? Merci!


Je pensais que vous rechercheriez sur Google les mots clés que j'ai donnés La documentation . Le polyfill .


Avez-vous trouvé une solution à ce problème?


pas encore. abandonne


3 Réponses :


1
votes

Si vous voyez également cette erreur sur d'autres sites Web, ne vous inquiétez pas, car elle n'est pas générée par votre application, probablement une extension Chrome.


1 commentaires

Il s'agit de mon extension. Il ne s'agit pas d'autres applications / sites Web.



3
votes

Vous ne pouvez pas renvoyer une Promise pour rendre la fonction async , vous devez renvoyer true . Alors changez ceci:

Promise.resolve("").then(result => sendResponse(result));
return true;

En ceci:

return Promise.resolve("");


0 commentaires

-1
votes

vérifier les extensions chrome, mettre à jour ou supprimer ou désactiver


2 commentaires

Veuillez inclure plus de détails - que doit exactement mettre à jour ou supprimer le PO?


pas plus de détails - avec une extension désactivée m'a fonctionné - aucune erreur - stackoverflow.com/users/13736952/m-chen -3