如何将promise中的返回值分配给外部/全局变量?
在我的service.ts中,我有一个返回数字的promise方法。
getNumber(username: string): Promise<number> {
return this.Test.deployed().then((instance) => {
return instance.getNumber.call(username);
})
.then((value) => {
return this.itemsService.getSerialized<number>(value);
})
.catch((e) => {
console.log(e);
});
}
在home.component.ts中,我在getNumber()
中调用ngOnInit
并将其返回值分配给全局变量isGreaterThanZero
。
isGreaterThanZero: boolean = false;
constructor(private service: myService){}
ngOnInit() {
...
var result = this.service.getNumber(userName);
result.then((value) => {
if (value > 0) {
this.isGreaterThanZero = true;
}
})
}
和html,
<button type="button" [disabled]="isGreaterThanZero"
乍一看看起来很容易,但我自己无法弄清楚。感谢帮助。
答案 0 :(得分:0)
this.service.getNumber(userName).then((value) => {
if (value > 0) {
this.isGreaterThanZero = true;
}
});
如果这不起作用,请确保您实际收到承诺中的值。也许找到了你的问题。
您可以通过插入alert()或console.log()来验证这一点。
this.service.getNumber(userName).then((value) => {
alert('value from promise: ', value);
if (value > 0) {
this.isGreaterThanZero = true;
}
});