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

Javascript 建议在Chrome Ext中异步下载文件名,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在编写我的第一个简单的Chrome扩展,它应该根据下载标签的标题将下载内容组织到子文件夹中。我计划在将来扩展它,但目前我甚至不能让这个简单的功能正常工作。问题似乎是无法从异步选项卡查询中调用“filename suggest”函数。下面的代码是后台JavaScript文件的完整内容: chrome.downloads.onDeterminingFilename.addListener(function (item, __suggest) { //Find active tab

我正在编写我的第一个简单的Chrome扩展,它应该根据下载标签的标题将下载内容组织到子文件夹中。我计划在将来扩展它,但目前我甚至不能让这个简单的功能正常工作。问题似乎是无法从异步选项卡查询中调用“filename suggest”函数。下面的代码是后台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 });
    })

});  
控制台记录的错误为:

suggestCallback may not be called more than once. (extensions::downloads:42)
我已经检查过suggest函数(在我的JS中)肯定只被调用一次。有什么办法可以解决这个问题吗?

如前所述:

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


因此,您需要在调用
chrome.tabs.query

之后添加
return true
,啊,错过了这一点。谢谢。