如何在Javascript中测试google.protobuf.Timestamp?
使用Scala中创建的API中的原型文件。我的代码在JS中,正在尝试测试我的代码,并出现以下错误:如何在Javascript中测试google.protobuf.Timestamp?,javascript,protocol-buffers,protobuf.js,Javascript,Protocol Buffers,Protobuf.js,使用Scala中创建的API中的原型文件。我的代码在JS中,正在尝试测试我的代码,并出现以下错误: AssertionError [ERR_ASSERTION]: invalid return value: post[0].lastPublishedDate: Date expected 尝试过但没有成功: lastPublishedDate:{seconds:,nano:},日期是日期的toISOString(),如文档()中所述 lastPublishedDate:new Date().t
AssertionError [ERR_ASSERTION]: invalid return value: post[0].lastPublishedDate: Date expected
尝试过但没有成功:
lastPublishedDate:{seconds:,nano:}
,日期是日期的toISOString(),如文档()中所述lastPublishedDate:new Date().toISOString()
有人在JS中使用过google.protobuf.Timestamp吗?显然这是一个常规的JS日期(
new date()
),比如可以从错误消息中看出…您可以使用此函数基于此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日期,您可以使用proto.google.protobuf.Timestamp
希望它能帮助您。
setSeconds
和setNanos
由于某种原因对我不起作用,但是fromDate
确实起作用。谢谢我也是,这个答案救了我一天。非常感谢!