如何向chrome扩展API添加回调函数?

时间:2016-04-22 02:30:04

标签: javascript cookies google-chrome-extension

实际上,我想在发送请求之前使用webRequest来修改cookie。我自己的cookie数据存储在扩展的存储中,但从存储中获取数据是异步的。那么如何修改请求的cookie?

我想这样做:

weak

如何在chrome.webRequest.onBeforeSendHeaders.addListener回调函数或任何其他解决方案中添加回调参数?

1 个答案:

答案 0 :(得分:0)

如果您确实想这样做,请使用Promise

var beforeSendHeadersHandler = {
    func: function(details, addCookie){
        var promise = new Promise(function(resolve) {
            chrome.storage.local.get("your key", function(results) {
                resolve(results["your key"]);
            });
        };
        promise.then(function(value) {
           return {requestHeaders: value};
        });
    },
    filter: {
        urls: ["<all_urls>"]
    },
    extra: ["blocking", "requestHeaders"]
};
chrome.webRequest.onBeforeSendHeaders.addListener(beforeSendHeadersHandler.func,
    beforeSendHeadersHandler.filter,
    beforeSendHeadersHandler.extra);

推荐

请参阅Synchronous call in Google Chrome extensionAsynchronous operation in blocking chrome.webRequest.onBeforeSendHeaders listener,建议如果您可以在侦听器之外制作副本,或者如果可能,请使用localStorage保存存储空间,同步。