var fun = async(function(){
var list = 0;
while(await(status())){
list += await(anotherFun());
}
return list;
});
var counters = [] // массив
var fun = async(function(){
var state = {val: 0, id: Math.random()} // при запуске новый счетчик
var counterId = counters.push(state) - 1 // и теперь он доступен снаружи
var list = 0;
while(await(status())){
list += await(anotherFun());
state.val++ // увеличиваем значение счетчика
}
// delete counters[counterId] // если хотите, можно подчистить
return list;
});