В Windows 8 мне понадобилась функция для проверки существования файла. Таковой разработчиками не введено, пришлось написать самому. 
var ret;
var aux_var;
function wait(variable) {
    if (variable) {
        return true;
    } else {
        return wait(variable);
    }
}
//-------------------------------------------------------------
function CheckingForFile(folder, file) {
    ret = false;
    aux_var = 0;
    folder.getItemsAsync().then(function (items) {
        items.forEach(function (item) {
            if (item.name == file) {
                ret = true;
            }
        });
        aux_var = 1;
    });
    wait(aux_var);
    return ret;
}
В фунцию CheckingForFile(folder, file) передаётся специальный объект папки и название файла. По идее она дожна возвращать true, если в папке есть файл, а иначе false. Функция getItemsAsync() получает все элементы, находящиеся в папке, в качестве массива. then(func) назначает фунцию, которая запускается при окончании получения массива файлов. Мне нужно задерживать окончание функции до того, как закончится выполнение функции func. Попробовал рекурсией, но, как я понимаю, количество вызовов функции превысило максимум (проверял, рекурсия работает). Ваши идеи?