У меня такой эффект:
@Effect()
updateMappingAfterChangeFieldType$ = this.actions$.pipe(
ofType(EditableObjectSchemaActionTypes.EditFieldType),
withLatestFrom(
this.store.select(fromReducers.getMappingFields),
this.store.select(fromCore.getTimezones) // **
),
map(([action, mappingFields, timezones]: [EditFieldType, MappingModel[], Timezone[]]) =>
{
const { uuid } = action.payload;
const { fieldType } = action.payload;
const fieldForUpdate = mappingFields.find(field => field.uuid === uuid);
const defaultTimezone = timezones.find((timezone) => timezone.isDefault);// **
const timezoneId = fieldType === DATE_TYPE ? defaultTimezone.id : '';// **
return new UpdateExistingMapping({
...fieldForUpdate,
timezoneId
});
})
);
Линии, отмеченные //**
, используются во многих местах.Я хочу сделать это пайплым оператором.Так это будет выглядеть примерно так:
@Effect()
updateMappingAfterChangeFieldType$ = this.actions$.pipe(
ofType(EditableObjectSchemaActionTypes.EditFieldType),
withLatestFrom(
this.store.select(fromReducers.getMappingFields)
),
getDefaultTimezoneId,
map(([action, mappingFields, defaultTimezoneId]: [EditFieldType, MappingModel[], string]) =>
{
const { uuid } = action.payload;
const { fieldType } = action.payload;
const fieldForUpdate = mappingFields.find(field => field.uuid === uuid);
return new UpdateExistingMapping({
...fieldForUpdate,
timezoneId: defaultTimezoneId
});
})
);
Как я могу это сделать?Кстати эффект в классе.Как я могу импортировать pipe
?Потому что когда я пытался import {pipe} from 'rxjs/Rx'
я получаю сообщение об ошибке в черном списке