建议在 Chrome Ext 中异步下载文件名

tim*_*hap 3 javascript google-chrome-extension

我正在编写我的第一个简单的 Chrome 扩展程序,它应该根据下载的选项卡的标题将下载内容组织到子文件夹中。我计划将来扩展它,但目前我什至无法让这个简单的功能发挥作用。问题似乎是无法从异步选项卡查询中调用“文件名建议”函数。下面的代码是后台JavaScript文件的完整内容:

chrome.downloads.onDeterminingFilename.addListener(function (item, __suggest) {

    //Find active tab
    chrome.tabs.query({ active: true }, function (tabs) {
        var activeTab = tabs[0];

        //Generate filepath
        var filepath = activeTab.title + "/" + item.filename;

        //TODO: Sanitize filepath.

        //Suggest filename for this download.
        __suggest({ filename: filepath });
    })

});  
Run Code Online (Sandbox Code Playgroud)

控制台记录的错误是:

suggestCallback may not be called more than once. (extensions::downloads:42)
Run Code Online (Sandbox Code Playgroud)

我已经检查过建议函数(在我的 JS 中)肯定只被调用一次。我有什么想法可以解决/解决这个问题吗?

rsa*_*hez 5

正如文档所说:

如果侦听器suggest异步调用,则它必须返回true

return true所以你需要在调用后添加chrome.tabs.query