无法从服务 Angular 6 获取回调

Cannot get callback from service Angular 6

提问人:Edd Núñez 提问时间:2/9/2019 最后编辑:Jota.ToledoEdd Núñez 更新时间:2/12/2019 访问量:136

问:

我用这个函数创建了一个服务

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 工作正常。

AngularJS 服务 回调

评论

0赞 Code Name Jack 2/9/2019
你在哪里定义了回调??
0赞 Code Name Jack 2/9/2019
你没有错过分号吗?我建议您安装 VSCode 和 tslint 扩展。这可以帮助您捕获许多此类错误
0赞 Edd Núñez 2/9/2019
@CodeNameJack我在服务中定义了它,当 .i 调用函数时
0赞 Code Name Jack 2/9/2019
你能不能也把它添加到问题中
0赞 Edd Núñez 2/9/2019
@CodeNameJack我使用崇高的文本,我的 macbook 上没有空间来安装它,我还有一个用于打字稿的包,它给出了所有错误,项目也编译了。

答:

0赞 Edd Núñez 2/12/2019 #1

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

但另一个是“这个”。它从回调中获取“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); } });

}