У меня есть два цикла while, выполняющихся одновременно с наблюдаемыми, методы выглядят так (для краткости я вычеркнул имена):
initiateGraph(fromDate: Date, toDate: Date) {
const graphParts = zip(
this.dothefirstthing(fromDate, toDate),
this.doanotherthing(fromDate, toDate)
);
}
оба метода берут от и до даты и помещают их в цикл while, который выглядит следующим образом:
while(from < to) {
//do stuff
from.setMonth(from.getMonth() + 1);
}
Проблема в том, что при запуске «doanotherthing» код не входит в цикл while, потому что даты from и to равны. Если я переключаю порядок в zip, то же самое происходит и с другим методом.
Если я не ошибаюсь, это происходит из-за того, что дата начала изменяется первым циклом while и поэтому не срабатывает при запуске второго.
Поэтому моей первой мыслью было попытаться передать значение вместо ссылки, что явно было проблемой ... теперь я не уверен
Вещи, которые я пытался обойти вокруг проблемы:
- установка локальных переменных в каждом методе прямо над циклом while
- создание класса ImmutableDate со свойством только для чтения и установка даты в графе инициации
- установка переменных области видимости в начальном графике
Почему это не сработает? И как я могу обойти эту проблему?