无法从服务Angular 6中获取回调

时间:2019-02-09 04:39:33

标签: angularjs service callback

我已经使用此功能创建了服务

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)
      }
      
    });
  }

它可以工作并插入到我的表中,一切正常,但是当我使用回调在服务函数内部打印时,它什么也没做,只是跳过了它,也是组件。

我在其他服务上具有相同的代码,并且它们的callbaks正常工作。

1 个答案:

答案 0 :(得分:0)

我解决了它,这是两个问题,一个在我的后端中带有async.each。

但是另一个是“ this”。它需要从回调中获取“ this”,因此,由于它没有名为loader的变量,因此不会执行任何操作。

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); } });

}