Как я могу проверить google.protobuf.Timestamp в Javascript?
Использование файла прото из API, созданного в Scala. Мой код находится в JS, пытается проверить мой код и получает следующую ошибку:
AssertionError [ERR_ASSERTION]: invalid return value: post[0].lastPublishedDate: Date expected
Пробовал и не работал:
lastPublishedDate: {seconds: <date>, nano: <date>}
с датой, являющейся датой toISOString(), как упоминалось в документации ( https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/timestamp.proto)lastPublishedDate: new Date().toISOString()
- Просто положить
2019-02-18T14:18:45.346Z
(это то, что API, кажется, возвращает, когда я это называю) в качестве даты.
Ничто, кажется, не работает для меня.
Единственная другая ссылка на это, которую я мог найти в Интернете, это: https://github.com/dcodeIO/protobuf.js/issues/437 и она также кажется нерешенной.
Кому-нибудь удалось поработать с google.protobuf.Timestamp в JS?
1 ответ
Вы можете использовать эту функцию для генерации даты на основе этого google/protobuf/timestamp.proto
const getDate = ()=>{
if (window.proto) {
const proto = window.proto;
const timeMS = Date.now();
const timestamp = new proto.google.protobuf.Timestamp()
timestamp.setSeconds(timeMS / 1000);
timestamp.setNanos((timeMS % 1000) * 1e6);
return timestamp;
}
}
ИЛИ вы также можете использовать это:
const date = new proto.google.protobuf.Timestamp()
date.fromDate(new Date())
и для получения даты JS вы можете использовать toDate()
метод от proto.google.protobuf.Timestamp
надеюсь, это поможет вам.
Так что, видимо, это была обычная дата JS (new Date()
) вроде можно было бы разобраться из сообщения об ошибке...