如何将promise的返回值分配给外部/全局变量?
为我服务。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); }); }
在家里。组成部分ts,我打电话 getNumber() 在里面 ngOnInit 并将其返回值赋给全局变量 isGreaterThanZero 。
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"
乍一看很容易,但我自己却无法理解。感谢您的帮助。
this.service.getNumber(userName).then((value) => { if (value > 0) { this.isGreaterThanZero = true; } });
如果这不起作用,请确保您确实从您的承诺中获得了价值。也许是你的问题所在。
您可以通过插入alert()或控制台来验证这一点。日志()。
this.service.getNumber(userName).then((value) => { alert('value from promise: ', value); if (value > 0) { this.isGreaterThanZero = true; } });