У меня есть функция, которая запускается много раз.
Когда это происходит, мне нужно прочитать файл, чтобы заполнить переменную в диспетчере:
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 , потому что хочу еще раз сказать, что это не асинхронная функция.