Слияние карт в эффекте Ngrx приводит к ошибке типов

#javascript #angular #ngrx #store

Вопрос:

у меня есть класс эффектов NgRX, который, я думаю, почти такой же, как в документах.

 import { Injectable } from '@angular/core'; import { Actions, createEffect, ofType } from '@ngrx/effects'; import { EMPTY } from 'rxjs'; import { map, mergeMap, catchError } from 'rxjs/operators'; import { SocialLearningFacadeService } from '../../facades/social-learning-facade.service'; import { loadCategories, retreivedCategories } from '../actions/categories';  @Injectable() export class CategoriesEffects {  loadMovies$: any = createEffect((): any =gt;  this.actions$.pipe(  ofType(loadCategories),  mergeMap(() =gt;  this.socialLearningFacadeService.getSocialLearningCategories().pipe(  map((categories) =gt;  retreivedCategories({ socialLearningCategories: categories })  ),  catchError(() =gt; EMPTY)  )  )  )  );   constructor(  private actions$: Actions,  private socialLearningFacadeService: SocialLearningFacadeService  ) {} }  

мои действия:

 import { createAction, props } from '@ngrx/store'; import type { SocialLearningCategory } from '../../../../core/models/socialLearningCategory';  export const loadCategories = createAction('load categories');  export const retreivedCategories = createAction(  'retreived social learning categories',  propslt;{ socialLearningCategories: any }gt;() );  

и на карте слияния есть эта ошибка:

введите описание изображения здесь

Я понятия не имею, как интерпретировать эту ошибку, особенно учитывая, что мой пример очень похож на документальный и все еще не работает.

РЕДАКТИРОВАТЬ: Служба фасада социального обучения

 import { Observable } from 'rxjs'; import { Injectable } from '@angular/core'; import { SocialLearningService } from '../services/social-learning.service'; import type { SocialLearningCategory } from '../../../core/models/socialLearningCategory'; import type { SocialLearningCategoryDetails } from '../../../core/models/socialLearningCategoryDetails';  @Injectable({  providedIn: 'root', }) export class SocialLearningFacadeService {  constructor(private socialLearningService: SocialLearningService) {}   public getSocialLearningCategories(): Observablelt;SocialLearningCategory[]gt; {  return this.socialLearningService.getSocialLearningCategories();  }   public getSocialLearningCategoryDetails(  id: number  ): Observablelt;SocialLearningCategoryDetailsgt; {  return this.socialLearningService.getSocialLearningCategoryDetails(id);  } }  

Комментарии:

1. Эффекты ожидают, что наблюдаемое будет возвращено. Вам нужно добавить return инструкцию, прежде this.socialLearningFacadeService.getSocialLearningCategories() чем возвращать наблюдаемое, возвращаемое этим вызовом службы.

2. похоже, это не работает, его уже вернула функция со стрелкой

3. Пожалуйста, проверьте возвращаемый контент из этой службы.socialLearningFacadeService.getsociallearningкатегории ().

4. Хороший улов. Было очень поздно, когда я прокомментировал это и пропустил функцию стрелки.

5. Служба возвращается наблюдаемой, как и должно быть, я не думаю, что в этом проблема.