使用来自Scala中创建的API的原始文件。我的代码在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#L115)中所述lastPublishedDate: new Date().toISOString()
2019-02-18T14:18:45.346Z
(当我调用它时,API似乎会返回)作为日期。似乎没有什么适合我。
我在网上可以找到的对此的唯一其他参考是: https://github.com/dcodeIO/protobuf.js/issues/437 而且似乎还没有解决。
有人在JS中使用过google.protobuf.Timestamp吗?
答案 0 :(得分:2)
您可以使用此函数基于此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
方法
希望它对您有帮助。
答案 1 :(得分:0)
显然,这是一个常规的JS日期(new Date()
),可以从错误消息中找出来...