Я реализовал функцию, которая получает строку ISO 8601 продолжительности и вычисляет последовательность для дня.
Функция зависает для недопустимых строк продолжительности.Эти строки интерпретируются как нулевая длительность, и поэтому функция создает бесконечную последовательность ["00:00","00:00",...]
.
timeSeq("PT12H")
// ["00:00", "12:00"]
timeSeq(undefined)
// hangs ....
Нулевая длительность отображается на P0D
через duration.toISOString()
.Как мне проверить нулевую продолжительность в моей функции?
const timeSeq = (durationString, format = "HH:mm") => {
const duration = moment.duration(durationString);
// function should return [] for zero duration
// ???
const current = moment().startOf("day");
const end = current.clone().add(1, "day").startOf("day");
const sequence = [];
while (current < end) {
sequence.push(current.format(format));
current.add(duration);
}
return sequence;
};