我正在使用Chrome消息传递API。我无法异步调用回调以正确传递参数。
我尝试了使用闭包的各种方法,但是没有用。
browser.runtime.onMessage.addListener(
if(condition) {
function (request, sender, sendResponse)
browser.management.getSelf((info) => {
sendResponse(info);
}
});
}
);
sendResponse调用的接收者应获取有效的“ info”参数。实际上,它总是返回info = undefined。该信息在getSelf()调用中正确返回,但未在sendResponse调用中传递。如果sendResponse()被同步调用,那么所有这些都可以正常工作。
****更新已解决*****
您需要从addListener回调中返回true,以告诉另一端等待延迟的响应。