Выполнить действие после возврата отправки в NGRX / Redux - PullRequest
0 голосов
/ 15 мая 2018

У меня есть следующий код в моем приложении Angular:

if(employee.details == undefined)
{
   this.store$.dispatch(new LoadEmployeeAction({ emp: action.id }));
}

this.empAction.emit(data)

Как я могу предотвратить / остановить выполнение моей функции emit до тех пор, пока не вернется моя диспетчеризация (которая выполняет получение из веб-API), так какобновляет значение данных в магазине?

1 Ответ

0 голосов
/ 15 мая 2018

Я полагаю, что store $ .dispatch () возвращает либо Promise, либо Observable. Итак, вот возможные решения.

1-е решение: В случае обещания

if(employee.details == undefined)
{
   this.store$.dispatch(new LoadEmployeeAction({ emp: action.id })).then(data => {
     this.empAction.emit(data);
   });
}

2-е решение: В случае наблюдаемого

if(employee.details == undefined)
{
   this.store$.dispatch(new LoadEmployeeAction({ emp: action.id })).subscribe(data => {
     this.empAction.emit(data);
   });
}

Это заставит ваш код ждать, пока не будут выполнены действия внутри этого .store $ .dispatch ().

...