#javascript #google-chrome-extension #proxy #browser-history #es6-proxy
#javascript #google-chrome-расширение #прокси #браузер-история #es6-прокси
Вопрос:
Я хотел бы использовать функцию обратного вызова для chrome.history.search
получения элементов истории.
Вот пример:
chrome.history.search({text: '', maxResults: 10}, function(data) {
// ...
});
Для этого примера я хочу записать 10 самых последних посещенных URL-адресов.
Вот что я попробовал:
chrome.history.search = new Proxy(chrome.history.search, {
apply: (target, thisArg, argumentsList) => {
console.log(argumentsList[1]) // this gives me the callback function not the data items
return target.apply(thisArg, argumentsList)
}
})
Как мне улучшить это, чтобы прокси-функция обратного вызова chrome.history.API и регистрирует 10 самых последних посещенных URL-адресов, которые передаются функции обратного вызова?
Ответ №1:
Сделайте это в своем собственном пользовательском обратном вызове, затем вызовите исходный обратный вызов, если он присутствовал:
chrome.history.search = new Proxy(chrome.history.search, {
apply(target, thisObj, args) {
const cb = typeof args[args.length - 1] === 'function' amp;amp; args.pop();
return target.call(thisObj, ...args, res => {
console.log(res);
if (cb) cb(res);
});
},
});