У меня есть этот аддон, который вставляет следующую «мета» TAG на страницы, которые она открывает. В конце я хочу закрыть все вкладки с помощью этой TAG на Заголовок страницы.Закрытие вкладок с определенным мета-тегом в firefox-addon с использованием javascript
<meta id="CLOSE_LATER">
Я написал простой для цикла:
var TAG = "CLOSE_LATER";
var tabs = require("sdk/tabs");
for(var i=0; i<tabs.length; i++){
var tab = tabs[i];
console.log("****START****");
console.log("CLOSING TAB : "+i+"of : "+tabs.length);
searchTag(tab, TAG,i)
.then(function success(rValue) {
if (rValue) {
tab.close();
console.log("CLOSED i: "+i);
}
else{
console.log("NOT CLOSED i: "+i);
}
}, function failure(error) {
console.log("Error : searchTag()");
});
console.log("****END****");
}
Где searchTag() прилагается скрипт на страницу "seachtag.js" для поиска TAG.
searchTag() возвращает обещание, разрешенное к ИСТИННОМ, это найти TAG на странице и разрешает FALSE в противном случае.
Пример ситуации: у меня есть 3 URL-адреса, из которых только URL-2 и URL-3 имеют TAG в голове. Поэтому только URL-2 & 3 должен быть закрыт, но только URL-3 закрыт.
Ниже приведен пример журнала:
То, что я наблюдаю на выходе, к тому времени, когда searchTag() вернул TRUE/FALSE, цикл for продолжается, а переменная «tab» теперь удерживает последнюю вкладку, а поскольку searchTag() возвращает TRUE, она закрывается. Как приостановить цикл от перехода к следующему, пока функция searachTag() не вернет значение? – Gabriel