小编Kyl*_* Hu的帖子

在侦听器中使用等待时如何避免“收到响应之前关闭消息端口”错误

我正在编写一个带有节点模块“chrome-extension-async”的 chrome 扩展,并await在后台侦听器中使用时遇到问题。

将被注入页面的 content.js 会向后台发送一条消息,要求它执行一些异步的 IO 操作:

// content.js
const package = await chrome.runtime.sendMessage({param: ...})
console.log(package)

// background.js
chrome.runtime.onMessage.addListener(async (request, sender, 
sendResponse) => {
    const value  = await doIOOperation();
    sendResponse(value);
})
Run Code Online (Sandbox Code Playgroud)

但是,chrome 会报告如下错误:

未捕获(承诺)错误:消息端口在收到响应之前关闭。

我认为在侦听器中使用 async/await 时肯定会有一些冲突,有人知道如何解决这个问题吗?

google-chrome-extension

6
推荐指数
2
解决办法
8086
查看次数

标签 统计

google-chrome-extension ×1