异步调用的回调不传递参数

时间:2019-08-26 16:55:39

标签: javascript asynchronous parameters callback

我正在使用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,以告诉另一端等待延迟的响应。

0 个答案:

没有答案