Не удается получить обратный звонок от сервиса Angular 6 - PullRequest
0 голосов
/ 09 февраля 2019

Я создал сервис с этой функцией

public crearNegocio(negocio,callback){
  	var user = JSON.parse(localStorage.getItem("currentUser"));
  	var id_usuario = user.objUser.id_usuario;
  	negocio.id_usuario = id_usuario;
  	this.http.post(this.config.initialConfig+"/negocio/create/",negocio)
  	.subscribe((response)=>{
  		callback(null,response)
  	},(error)=>{
  		callback(error)
  	})
  }
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.1/angular.min.js"></script>

тогда в компоненте я называю это так:

import { NegocioService } from '../negocio.service';

constructor(private negocioS:NegocioService) {}

crearNegocio(){
    this.loader=true;
    this.negocioS.crearNegocio(this.negocio,function(err,res){
      if(!err){
        this.loader=false;
        console.log("res",res);
      }else{
        this.loader=false;
        console.log(err)
      }
      
    });
  }

Это работает и вставляет в мою таблицу, все хорошо, но когда я использую функцию обратного вызова для печати внутри сервисной функции, она ничего не делает, она просто пропускает, такжекомпонент.

У меня есть такой же код на других сервисах, и их колбаки работают нормально.

1 Ответ

0 голосов
/ 12 февраля 2019

Я решил, это было две проблемы, одна в моем бэкэнде с async.each.

Но другая была "это".Он берет «this» из обратного вызова, так как у него нет переменной с именем loader, он ничего не будет делать.

</p>

<code>crearNegocio(){
var self = this;
this.loader=true;;
this.negocioS.crearNegocio(self.negocio,function(err,res){
  if(!err){
    self.loader=false;
  }else{
    self.loader=false;
    console.log(err);
  }

});
</code>

}

...