Внутри ngOnInit () подписывается URL через сервис и получает ID, который в итоге должен быть передан методу diff в том же ngOnInit () - PullRequest
0 голосов
/ 02 мая 2019

Во-первых, я пытался найти URL-адрес через службу и вызывал эту службу в component.ts (ngOnInit ()) и получал идентификатор из этого первого URL-адреса.

Во-вторых, мне пришлось пройтиID, который я получил от первого вызова к другому URL через метод сервиса и получил некоторую информацию об этом тоже в той же component.ts (ngOnInit ()).

Я пытался использовать подписку внутри подписки, но когда второйURL ударил, он дал неопределенное значение для идентификатора.но в ngOnInit это утешало вывод

ngOnInit() {
    this.username= this.data.username;
    this.password= this.data.password;
    this.projectservice.getjobidlist(this.username,this.password).subscribe(data1=>{
        this.id=data1.results[0].id;
        this.idservice.id=this.id;
      console.log("inside subscribe",this.id);
      this.projectservice.getjobslists(this.username,this.password,this.idservice.id).subscribe(data=>{this.jobs=data; console.log("jobs list",this.jobs)});
    })};

это второй код метода

getjobslists(username,password,id){
    let credentials = username + ":" + password;
    let basic = "Basic " + btoa(credentials);
    console.log(basic);
    console.log("id in joblists",id);
    let headers = new HttpHeaders({
      'Content-Type': 'application/json',
      'id': id,
      'authorization': basic,
      'Access-Control-Allow-Origin': '*',
    });
    let options = ({ headers: headers });
    return this.http.get<any>('http://localhost:4600/getjobdetailsfinal', options);
  }

это nodejs для http://localhost:4600/getjobdetailsfinal

app.get('/getjobdetailsfinal',function(req,res){
    id = req.headers.id;
    console.log("jobdetailsfinal",id);
    authorization = req.headers.authorization;
    var config = {
        headers: {
            'Content-Type': 'application/json',
            'Authorization': authorization
        }
    };
    url = "http://162.70.211.74/api/v1/jobs/?created_by="+id;
    console.log("this is ",url);
    axios.get(url, config)
        .then(function (response) {
            console.log("this is get for jobdetails",JSON.stringify(response.data))
            res.send(JSON.stringify(response.data));
        })
        .catch(function (error) {
            console.log(error);
        });
})

Я получил неопределенное в console.log (id) 3-я строка кода nodejs.

Заранее спасибо

...