我以前有以下代码:
static generate() {
var now = new Date();
return {
"date": now.getDate(),
"day": now.getDay(),
"hours": now.getHours(),
"minutes": now.getMinutes(),
"month": now.getMonth(),
"seconds": now.getSeconds(),
"time": now.getTime(),
"timezoneOffset": now.getTimezoneOffset(),
"year": now.getFullYear() - 1900,
};
}
这工作正常,但是从客户端获取了日期,这是一件坏事,所以我将这段代码移到了节点服务器上,现在看起来像这样:
router.get('/generateTime', cors(), (req, res, next) => {
var now = new Date();
res.json({
"date": now.getDate(),
"day": now.getDay(),
"hours": now.getHours(),
"minutes": now.getMinutes(),
"month": now.getMonth(),
"seconds": now.getSeconds(),
"time": now.getTime(),
"timezoneOffset": now.getTimezoneOffset(),
"year": now.getFullYear() - 1900,
});
});
generate()
函数现在看起来像这样:
static async generate() {
var now = await fetch('link/generateTime').catch(e => console.log(e));
now = await now.json();
return now;
}
在我像这样做一些firebase CRUD之前:
export function setLastActiveTime() {
firebase.database().ref('Users').child(firebase.auth().currentUser.uid).child('lastActiveTime').set(Time.generate()).catch(e => console.log(e));
}
现在,我像这样使用async await
使它工作:
export async function setLastActiveTime() {
await firebase.database().ref('Users').child(firebase.auth().currentUser.uid).child('lastActiveTime').set(await Time.generate()).catch(e => console.log(e));
}
但是问题是,我需要在其他地方更改很多的代码,这样才能起作用。
是否有办法保持旧的setLastActiveTime()
函数不变,并且仅更改generate()
函数,以便它从服务器获取日期,并等待异步调用完成? / p>