我有这样的功能:
private data: MyCustomDataObject;
private getData(): boolean {
let val: boolean = true; // variable declared
this.service.callMethod().subscribe(data => {
this.data = data;
if (data == null) {
val = false; // val declared above is not updating
}
});
return val; // this is still true, should be false
}
val
如何更新?
答案 0 :(得分:2)
这里发生的事情是Cumulative_sum = CALCULATE( SUM(Table[ColumnA]) + SUM(Table[ColumnB]) + SUM(Table[ColumnC]); FILTER(ALL(Table(TIME_PERIOD); Table[TIME_PERIOD] <= MAX (Table[TIME_PERIOD])))
接受你给它的功能,并在某些事件发生时挂在它上面。当你通过它时,它实际上并没有运行你的功能。因此, Cumulative_sum = CALCULATE( SUM(TableA[ColumnA]) + SUM(TableA[ColumnB]) + SUM(TableA[ColumnC]); FILTER(ALL(TableB(TIME_PERIOD); TableB[TIME_PERIOD] <= MAX (TableB[TIME_PERIOD])); FILTER(ALLSELECTED(TableA); TableA
[SITUATION] = "OK'))
函数会在没有调用回调的情况下继续运行,因此subscribe
的值在getData
返回之前永远不会更改。如果您希望它返回val
,则您需要在传递给getData
的回调之外更改false
。