我使用的是异步订阅,因此计数器变量在更新之前被返回。是否有另一种订阅方法,允许我仅在计数器变量更新为从后端获取的值后才返回计数器变量?
makeOffer(product: string, offer: number): number {
let formData = new FormData();
formData.append('name', product);
formData.append('offer', offer.toString());
let counter = 1
this.http.post('http://localhost/Project/PHP/negotiation.php', formData)
.subscribe((data) => {
counter = data['counter']
}, (error) => {
console.log('Error! ', error)
});
return counter;
}
您需要使用 .map 而不是 .subscribe。 Later 主要用于如果您希望将响应更新到 DOM。
makeOffer(product: string, offer: number): Observable<number | null> {
let formData = new FormData();
formData.append('name', product);
formData.append('offer', offer.toString());
let counter = 1
return this.http.post('http://localhost/Project/PHP/negotiation.php', formData)
.map((data) => {
return data['counter']
}, (error) => {
console.log('Error! ', error);
return null;
});
}
成分:
this.service.makeOffer().subscribe((counter)=>{
console.log(counter);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)