Буферы протокола Google: c.toArray не является функцией при установке значения даты по моему запросу - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь создать запрос на создание для grpc-web.У меня сгенерированы буферы протокола, и я могу успешно получить информацию, но у меня возникают проблемы при создании запроса.

Например.

const request = new PricingMethodRequest()
request.setCurrencyId(64)
request.setId(0)
request.setFrequency(1)
request.setFromDate({ nanos: 0, seconds: 1555064508 }) // <--- Crashes on this line
...

Кажется, я продолжаю получать TypeError: c.toArray is not a functionкогда я пытаюсь установить значение даты.Или даже значение цены, которое также является объектом.

Как мне реализовать установку значения даты или любого значения, которое ожидает объект JavaScript?

Редактировать:

Я видел в Интернете такие вещи, что я мог бы сделать что-то вроде этого:

const fromDateAny = new proto.google.protobuf.Any.fromJavaScript({ nanos: 0, seconds: 1555064508 })
request.setFromDate(fromDateAny)

Но при этом у меня появляется ошибка Cannot find name 'proto'.

1 Ответ

0 голосов
/ 12 апреля 2019

Оказывается, я должен был создать тип Timestamp для fromDate.

Я сделал это, выполнив следующее:

import * as timestamp_pb from 'google-protobuf/google/protobuf/timestamp_pb'

...

const timestampFromDate = new timestamp_pb.Timestamp()
timestampFromDate.setSeconds(fromdate.seconds)
timestampFromDate.setNanos(fromDate.nanos)

request.setFromDate(timestampFromDate)
...