首页 > 解决方案 > “订阅”类型缺少“可观察”类型的以下属性': _isScalar、source、operator、lift 和另外 6 个

问题描述

我需要从 angular 8 中的 tow api 返回数据。

我创建了这个解析器:

export class AccessLevelResolve implements Resolve<any>{

constructor(private accessLevel: AccessLevelService) { }

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
    let id = +route.paramMap.get('id');

    const getControllerList = this.accessLevel.getAll().pipe(
        map(
            res => {
                if (res) {
                    return res.date;
                }
            }
        )
    )

    const getRoleAccessRole = this.accessLevel.getAllWithId(id).pipe(
        map(
            res => {
                if (res) {
                    return res.date;
                }
            }
        )
    )
   return forkJoin(getControllerList, getRoleAccessRole).subscribe(res => {
        return {
            controllerList: res[0],
            accessRoleList: res[1]
        }
    }
    )

}

但它告诉我这个错误:

“订阅”类型缺少“可观察”类型中的以下属性:_isScalar、源、运算符、提升和另外 6 个。

有什么问题 ???我怎么解决这个问题 ??

标签: javascriptangulartypescript

解决方案


你没有订阅你的解析器,你返回 observable 和 angular 订阅:

return forkJoin(getControllerList, getRoleAccessRole).pipe(map(res => {
    return {
        controllerList: res[0],
        accessRoleList: res[1]
    }
}))

推荐阅读