WebExtenstions 中是否有 port.postMessage() 的回调

Is there a callback for port.postMessage() in WebExtenstions

有没有办法等到接收方处理使用port.postMessage(message)? I'd expect something like callback passed as second argument similarly to chrome.scripting.executeScript(injection, callback)

发送的消息

据我所知,不是原生的,但包装器很容易实现。您需要一个 class 来为每条消息生成一个随机 UID(唯一 ID)并存储一个映射 { [uid]: cb }。将生成的 UID 附加到消息中。响应还需要包含相同的 UID。