我已经使用此功能创建了服务
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正常工作。
答案 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);
}
});
}