Flux waitFor () и асинхронная операция, как моделировать.

Я использую pouchDB в качестве локальной базы данных для приложения. Я хочу запросить результаты из PouchDB и загрузить это в React.js. Однако, хотя я использую метод waitFor (), результаты запроса PouchDB возвращаются слишком поздно. Я думаю, я не понимаю правильное использование waitFor (), может быть, кто-то может пролить свет на это.

У меня есть два хранилища, DbStore, которое получает данные из базы данных. И FileExplorerStore это хранилище используется моими реагирующими компонентами.

DbStore.dispatchToken = AppDispatcher.register(function (payload) {

    var action = payload.action;
    var folder = payload.action.folder
    switch (action.type) {

        case 'OPEN_FOLDER':    
            if (folder === 'start') {
                DbStore.init();
            }
            else {
                DbStore.createPath(folder);
            }
            DbStore.emitChange();
            break;
        default:
        // do nothing
    }


    return true;
});

В DbStore есть функция LoadFiles, которая загружает файлы БД в массив _files. Для наглядности я скопировал код ниже:

loadFiles: function (_path) {
            var fileNames = fs.readdirSync(_path);
            _files = [];


            fileNames.forEach(function (file) {
                console.log(file)
                db.query(function (doc) {
                    emit(doc.name);
                }, {key: "bower.json"}).then(function (res) {
                    _files.push(res.rows[0].key)
                });
            });

 }, 

В FileExplorerStore есть метод для извлечения файлов из массива _files. Затем в FileExplorerStore у меня есть метод getFiles (), который будет извлекать эти файлы. Однако этот массив всегда пуст, потому что этот метод будет выполнен до того, как массив будет заполнен.

FileExplorerStore

FileExplorerStore.dispatchToken = AppDispatcher.register(function (payload) {

var action = payload.action;


switch (action.type) {

    case 'OPEN_FOLDER':
        AppDispatcher.waitFor([DbStore.dispatchToken]);

        FileExplorerStore.emitChange();
        break;
    default:
    // do nothing
}


return true;
});

В response.js функция getInitialState будет вызывать функцию getFiles () из FileExplorerStore для отображения файлов.

Как я могу исправить это или смоделировать это лучше?