相关疑难解决方法(0)

chrome 扩展 - sendResponse 不等待异步功能

我有一个异步问题(我相信)。sendResponse()contentscript.js中不等待getThumbnails()返回。

我在popup.js 中发送消息

chrome.tabs.sendMessage(tabs[0].id, {message: "get_thumbnails", tabUrl: tabs[0].url},
      function (respThumbnails) {
            const thumbUrl = respThumbnails.payload;
            console.log("payload", thumbUrl)   
      }
);
Run Code Online (Sandbox Code Playgroud)

然后,在contentscript.js这条消息:

chrome.runtime.onMessage.addListener(async function(request,sender,sendResponse) {
    if(request.message === "get_thumbnails") {
        const payload = await getThumbnails();
        console.log("thumbPayload after function:", payload)
        sendResponse({payload:payload});   
    }
});


async function getThumbnails() {
    let tUrl = null;
    var potentialLocations = [
        {sel: "meta[property='og:image:secure_url']",   attr: "content" },
        {sel: "meta[property='og:image']",              attr: "content" },
    ];

    for(s of potentialLocations) { …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension

9
推荐指数
1
解决办法
3583
查看次数