我正在使用节点模块“ chrome-extension-async”编写chrome扩展,并在后台的侦听器中使用// 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);
})
时遇到问题。
将被注入到页面中的content.js将向后台发送一条消息,要求它执行一些异步的IO操作:
{{1}}
但是,chrome会报告如下错误:
未捕获(承诺)错误:在收到响应之前,消息端口已关闭。
我认为在侦听器中使用async / await时一定会有一些冲突,有人知道如何解决此问题吗?
答案 0 :(得分:3)
const asyncFunctionWithAwait = async (request, sender, sendResponse) => {...}
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
asyncFunctionWithAwait(request, sender, sendResponse)
return true
})
为我工作