Angular 从一个可观察到的对象中获取另一个可观察到的对象的值

Angular 从一个可观察到的对象中获取另一个可观察到的对象的值,angular,rxjs,observable,Angular,Rxjs,Observable,我有一个function1(),它调用function2(),它返回一个可观察的 功能1 function1(url: string):Observable<boolean> { return this.function2().map(res=>{ if (this.data== true) { return true; }

我有一个
function1()
,它调用
function2()
,它返回一个可观察的

功能1

function1(url: string):Observable<boolean> {

         return this.function2().map(res=>{
              if (this.data== true) 
              {
                   return true; 
            }
            else{
                this.router.navigate(['/error-user']);
                return false;
            }
            });
function3()
订阅服务调用

功能3

function3(){

             this.service.getUserInfo ()
                            .subscribe(
                                response => {                         
                                    //some data
                                  this.data=true; 
                                })

            }
现在我想要的是
function3()
中的
this.data
可以在
function2()
中访问,因为我正在
function1()
中使用
map
操作符来使用它

到目前为止,我尝试的是以下内容:

function2(){
    debugger;
    return this.service.getSettings()
        .do(

                  response => {

                      //some data

                      this.function3().map(
                      ()=> console.log( this.data) ).subscribe(()=>{return this.data}); 
                      //this.data from function3() should be accesible here                                                       
                  }); 

  }

function3(){

            return this.service.getUserInfo ()
                            .do(
                                response => {                         
                                    //some data
                                  this.data=true; 
                                })

            }

但是,使用上面的方法,我无法从function2()范围内的function3()中获取
this.data
的值。此外,此数据也应传递给function1()。

对function3()使用
可观察的

更新1:

function2(){
    let myData = {}; // if data an obj
    debugger;
    return this.service.getSettings()
        .do(

                  response => {

                      //some data

                      this.myData = this.function3().subscribe((data) => {
                         return data;
                      });
                      // the data from function3() is now available here                                                       
                  }); 

  }
更新2:

function2(){
    let myData = {}; // if data an obj
    debugger;
    return this.service.getSettings()
        .do(

                  response => {

                      //some data

                      this.myData = this.function3().subscribe((data) => {
                         return data;
                      });
                      // the data from function3() is now available here                                                       
                  }); 

  }
另一个更好理解的例子。我就是这样使用它的:

职能:

   getLoginInfo(): Observable<any> {
        return this.jsonApiService.fetch('/user/login-info.json')
            .do((user) => {
                this.userInfo = user;
                this.user.next(user);
            });
    }

对于
function3()
,也可使用
Observable

更新1:

function2(){
    let myData = {}; // if data an obj
    debugger;
    return this.service.getSettings()
        .do(

                  response => {

                      //some data

                      this.myData = this.function3().subscribe((data) => {
                         return data;
                      });
                      // the data from function3() is now available here                                                       
                  }); 

  }
更新2:

function2(){
    let myData = {}; // if data an obj
    debugger;
    return this.service.getSettings()
        .do(

                  response => {

                      //some data

                      this.myData = this.function3().subscribe((data) => {
                         return data;
                      });
                      // the data from function3() is now available here                                                       
                  }); 

  }
另一个更好理解的例子。我就是这样使用它的:

职能:

   getLoginInfo(): Observable<any> {
        return this.jsonApiService.fetch('/user/login-info.json')
            .do((user) => {
                this.userInfo = user;
                this.user.next(user);
            });
    }

只有当您看到我在问题中所做的尝试时,function3才会返回一个可观察的。@AakashThakur为什么不调用
getUserInfo()
inside
function2()
?@AakashThakur无论如何,要访问
function3()
,您可以按照我的方法执行。如果您需要使用在
function3()
中获得的数据进行操作,只需订阅它,然后在
subscribe()
中执行所需的操作……但是如何使
中的
此.data
可用function1@AakashThakur检查如何访问“我的更新”中的数据。如果您需要
function3()
返回的数据,只需在需要该数据的地方订阅
function3()
。只有当您看到我在问题中尝试的内容时,function3才会返回一个可观察的。@AakashThakur为什么不在
function2()
内部调用
getUserInfo()
?@AakashThakur,要访问
function3()
,您可以按照我的方法进行操作。如果您需要使用在
function3()
中获得的数据进行操作,只需订阅它,然后在
subscribe()
中执行所需的操作……但是如何使
中的
此.data
可用function1@AakashThakur检查如何访问“我的更新”中的数据。如果需要
function3()
返回的数据,只需在需要数据的地方订阅
function3()