Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 类型脚本嵌套的观察值_Typescript_Rxjs6 - Fatal编程技术网

Typescript 类型脚本嵌套的观察值

Typescript 类型脚本嵌套的观察值,typescript,rxjs6,Typescript,Rxjs6,背景: 使用rxjs可观测值 我试图调用一个调用另一个方法的方法(带有可观察对象)。此当前设置不适用于我,因为服务1中的checkIfTrue函数中存在以下编译错误 声明类型既不是“void”也不是“any”的函数必须返回 a值.ts(2355) //组件 //打电话服务 进程=()=>{ this.service1.checkIfTrue().subscribe(x=>{console.log(x)}); }; //服务1 //呼叫服务2 checkIfTrue=():可观察=>{ this.

背景: 使用rxjs可观测值

我试图调用一个调用另一个方法的方法(带有可观察对象)。此当前设置不适用于我,因为服务1中的checkIfTrue函数中存在以下编译错误

声明类型既不是“void”也不是“any”的函数必须返回 a值.ts(2355)

//组件
//打电话服务
进程=()=>{
this.service1.checkIfTrue().subscribe(x=>{console.log(x)});
};
//服务1
//呼叫服务2
checkIfTrue=():可观察=>{
this.service2.getInt().subscribe(y=>{returny y==1;});
};
//服务2
//呼叫服务2
getInt=():可观察=>{
第(1)项的可观测收益;
};
似乎我无法返回第二种方法的响应…我如何才能实现这一点

checIfTrue (): Observable<boolean> => {
     this.service2.getInt().subscribe(y => { return y == 1;});
};
你要找的是这样的东西

checIfTrue (): Observable<boolean> => {
   return this.service2.getInt()
    .pipe(map(y => y == 1));
};
checIfTrue():可观察=>{
返回这个.service2.getInt()
.pipe(map(y=>y==1));
};
您可以将其缩短为:

checIfTrue (): Observable<boolean> => this.service2
    .getInt()
    .pipe(map(y => y == 1));
checIfTrue():可观察=>this.service2
.getInt()
.pipe(map(y=>y==1));

谢谢,但您将我的两种方法合并为一种,这不是我想要的。。。。我知道怎么那样做!你所说的“checkIfTrue没有返回语句”是什么意思?y=>{returny y==1;}是一个单独的函数,这是我试图用“a”函数演示的。只有这个函数有一个return语句,您的checkIfTrue函数没有return语句,如果没有return语句,它将不会返回值,这就是编译器错误告诉您的。
checIfTrue (): Observable<boolean> => {
   return this.service2.getInt()
    .pipe(map(y => y == 1));
};
checIfTrue (): Observable<boolean> => this.service2
    .getInt()
    .pipe(map(y => y == 1));