Angular 角5值的持久性
我如何使服务返回给我的值在我的所有方法detailproduct.Id\u Product=form.Id\u Product.Id中保持不变,分配给它的值只在该上下文中保持不变,但如果我在外部调用它,它就没有定义。,Angular 角5值的持久性,angular,typescript,Angular,Typescript,我如何使服务返回给我的值在我的所有方法detailproduct.Id\u Product=form.Id\u Product.Id中保持不变,分配给它的值只在该上下文中保持不变,但如果我在外部调用它,它就没有定义。,this.serviceProduct.postProduct肯定是一个异步操作,返回一个可观察的。当执行console.log时,对subscribe的调用尚未执行,因此您当然不会得到值 如果要等待该值可用,必须确保所有代码都是从调用subscribe的内部执行的,在组件类的开头
this.serviceProduct.postProduct
肯定是一个异步操作,返回一个可观察的。当执行console.log
时,对subscribe
的调用尚未执行,因此您当然不会得到值
如果要等待该值可用,必须确保所有代码都是从调用subscribe
的内部执行的,在组件类的开头创建变量,并使用此更新函数中的变量
比如说-
if (form.Id_Product.id == undefined) {
product.NameProduct = form.Id_Product;
this.serviceproduct.postProduct(product).subscribe((result: Product) => {
form.Id_Product = result;
product = form.Id_Product;
detailproduct.Id_Product = form.Id_Product.id;
});
// Here the value no longer comes out, as I do for
// the value continues to persist
console.log(detailproduct.Id_Product);
}
另一种情况是,subscribe在打印console.log语句后获取值,因为这是异步行为。因此,您的值已初始化,但未记录 其中一个可能的解决方案是将该价值注入到您的服务中。提供程序:[UserService,{provide:APP_CONFIG,useValue:HERO_DI_CONFIG}],可能与
test: string;
ngOnInit() {
this.test = 'new value';
}