我有两个while循环与observables同时运行,方法看起来像这样(为简洁起见,我已经取了名字):
initiateGraph(fromDate: Date, toDate: Date) {
const graphParts = zip(
this.dothefirstthing(fromDate, toDate),
this.doanotherthing(fromDate, toDate)
);
}
这两个方法都采用from和to日期,并将它们放入如下所示的while循环中:
while(from < to) {
//do stuff
from.setMonth(from.getMonth() + 1);
}
问题是,当“ doanotherthing”运行时,由于from和to日期相等,因此代码不会进入while循环。如果我在zip中切换顺序,则其他方法也会发生同样的事情。
除非我弄错了,否则会发生这种情况,因为第一个while循环更改了起始日期,因此在第二个while循环运行时不会击中日期。
因此,我的第一个想法就是尝试传递值而不是引用,这显然是问题所在。...现在我不太确定
我试图解决的问题:
这些为什么不起作用?我该如何解决这个问题?
答案 0 :(得分:3)
在每种方法的开头创建日期的新副本。
const fromDate = new Date(from)
然后在循环中使用它。