chrome.cookies.getВсе и удалите все куки, затем дождитесь окончания - PullRequest
0 голосов
/ 03 октября 2019

API chrome.cookies мне не понятен. Я хочу получить все файлы cookie для 3 разных доменов, затем удалить их и дождаться завершения процесса, после чего я хочу установить несколько файлов cookie.

Если я понимаю файлы cookie, chrome.cookies.getAll не возвращает обещание,только я могу определить обратный вызов. Теперь для меня ясно, что я могу написать обратные вызовы для всех трех команд куки getAll, но там я снова удаляю несколько куки, этот процесс идет асинхронно. Поэтому я совершенно заблудился, как определить, когда все куки-файлы 3 доменов были полностью удалены.

Один из вариантов, о котором я могу подумать, - это запустить 3 cookie.getAlls один раз и посчитать число. файлов cookie, затем с каждым удалением я увеличиваю счетчик и при обратном вызове удаления проверяю, достигнуто ли общее количество. Это кажется очень странным, поэтому я не могу поверить, что это правильный способ сделать это.

Спасибо

1 Ответ

0 голосов
/ 17 октября 2019

Я не думаю, что это оптимизировать, но это быстрый ответ.

function RemoveCookies(cookies, domain){
   for(var i=0; i<cookies.length;i++) {
        chrome.cookies.remove({url: 'https://'domain + cookies[i].path, name:cookies[i].name});
      }
}

function RemoveDomain1(callback, ...params){
  chrome.cookies.getAll({domain: domain1}, function(cookies) {
     RemoveCookies(cookies, domain1);
     callback(params)
		
	});
}
function RemoveDomain2(callback, ...params){
  chrome.cookies.getAll({domain: domain2}, function(cookies) {
     RemoveCookies(cookies, domain2);
     callback(params)
		
	});
}
function RemoveDomain3(callback, ...params){
  chrome.cookies.getAll({domain: domain3}, function(cookies) {
     RemoveCookies(cookies, domain3);
     callback()
		
	});
}

RemoveDomain1(RemoveDomain2, RemoveDomain3, DoSomthingAfterAll)

проверьте и эту ссылку, может быть, это поможет

...