我正在尝试构建一个创建请求grpc-web
。我已经生成了协议缓冲区,并且可以成功获取信息,但在创建请求时遇到问题。
Eg.
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 对象的值?
Edit:
我在网上看到的东西我可以做这样的事情:
const fromDateAny = new proto.google.protobuf.Any.fromJavaScript({ nanos: 0, seconds: 1555064508 })
request.setFromDate(fromDateAny)
但这样做给了我错误Cannot find name 'proto'
.
事实证明我必须创建一个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)
Edit:
我找到了一种更简洁的方式来读取和编写这些函数,只需链接它们即可。例如。构建的最终请求将如下所示:
const request = new PricingMethodRequest()
.setCurrencyId(64)
.setId(0)
.setFrequency(1)
.setFromDate(
new timestamp_pb.Timestamp()
.setSeconds(1555064508)
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)