如何向 chrome 扩展 API 添加回调函数
How can I add a callback function to chrome extension api?
实际上,我想在发送请求之前使用 webRequest 修改 cookie。我自己的 cookie 数据存储在扩展的存储中,但从存储中获取数据是异步的。那么如何修改请求的 cookie 呢?
我想这样做:
var beforeSendHeadersHandler = {
func: function(details, addCookie){
addCookie(details)
return {requestHeaders: details.requestHeaders}
},
filter: {
urls: ["<all_urls>"]
},
extra: ["blocking", "requestHeaders"]
};
chrome.webRequest.onBeforeSendHeaders.addListener(beforeSendHeadersHandler.func,
beforeSendHeadersHandler.filter,
beforeSendHeadersHandler.extra);
如何将回调参数添加到chrome.webRequest.onBeforeSendHeaders.addListener回调函数或任何其他解决方案?
如果您确实想这样做,请使用 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);
推荐
请参阅 Google Chrome 扩展程序中的同步调用和阻止 chrome.webRequest.onBeforeSendHeaders 侦听器中的异步操作,建议如果可以在侦听器之外创建副本,或者如果可能,使用 localStorage 保存存储,它是同步的。
相关文章:
- 如何向.apply()方法添加回调
- 如何向 chrome 扩展 API 添加回调函数
- 如何为该代码添加回调函数
- 如何在不向现有JavaScript函数添加代码的情况下向该函数添加回调函数
- javascript原型-添加回调
- 如何为每个 AJAX 请求/响应事件添加回调
- 在这种情况下,如何使用参数添加回调
- 为我的简单 JavaScript 函数添加回调功能
- Jquery 可以选择添加回调
- 加载列表(带图像)时添加回调函数
- 如何为setAttribute添加回调
- Google+交互式帖子-如何为按钮添加回调
- 等待异步函数完成而不添加回调
- 向jQuery插件添加回调
- 在forio/control中执行渲染函数后添加回调
- 如何在动态加载javascript文件后添加回调
- 在JavaScript中,可以添加回调函数而不是覆盖它
- 为for循环函数添加回调
- 如何在此函数中为gzip添加回调
- 在JavaScript类中添加回调功能