Между асинхронными вызовами и общими переменными - PullRequest
1 голос
/ 04 мая 2019

У меня есть функция, которая запускается много раз. Когда это происходит, мне нужно прочитать файл, чтобы заполнить переменную в диспетчере:

roomAdded: state => function ( config, room ) {
    const perMng = state.PersistanceManager;
    const perLoader = state.EntityLoaderRegistry.get( 'persistence' );
    if ( perMng.checkArea( config.area ) )
        return;

    var rooms = [];
    var items = [];

    perLoader.setArea( config.area );
    perLoader.fetchAll().then( res => {
        res.rooms.forEach( room => {
//...
            perMng.addArea( config.area, rooms );

Теперь моя fetchAll не является асинхронной функцией, и я не могу сделать ее асинхронной , потому что EntityLoaderRegistry хочет, и я не могу изменить, как это работает.

Что мне нужно, так это то, что начиная с вызова 2 ° я хотел бы checkArea и делать то, что в , если только после этого предыдущего вызова Закончено, потому что предыдущий вызов мог заполнить Map тем же, что и следующий. Но я не могу использовать клавишу await , потому что хочу еще раз сказать, что это не асинхронная функция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...