примерно так:
function checkAllTopics() {
var start = 1,
finish = 10,
inc = 0,
baselink = "http://example.com/?id=",
fullLink = '';
function sendXHR(index, link, callback) { //функция обертка для xhr, с помощью нее я думал сделать запросы синхронными.
fullLink = link + index;
GM_xmlhttpRequest({
method: "GET",
url: fullLink,
onload: function(response) {
console.log("so this is a result of " + index + ", " + response.status); //здесь мы просто выводим айдишник темы и статус ответа сервера
if (response.status == 200) {
inc++; //здесь логика - если ответ сервака ОК, то делаем инкремент счетчика
console.log(this.url, response.status); //это еще один проверочный вывод инфы для того, чтобы убедиться в том, как все работает
}
callback();
}
});
}
(function _go() {
if (start <= finish) {
sendXHR(start++, baselink, _go);
} else {
console.log(inc); // а здесь в итоге выводим тот самый счетчик, который покажет нам количество успешных обращений к серверу.
}
})();
}
checkAllTopics();
обошлись без синхронности