gpt4 book ai didi

javascript - 在我继续执行我的代码之前如何等待几毫秒?

转载 作者:行者123 更新时间:2023-11-30 10:57:00 25 4
gpt4 key购买 nike

我想避免玩家可以非常频繁地调用 server.UpdateUserInternalData。因此,我想在 UserInternalData 中保存最后一次调用 server.UpdateUserInternalData 的时间戳。

我只想更新 "PlayerData1": newdata 如果最后一次 server.UpdateUserInternalData 调用在当前时间之前至少 4000 毫秒(currenttimeinmilliseconds)。但是如果最后一次更新调用不是在当前时间之前至少 4000 毫秒(currenttimeinmilliseconds),我不知道该怎么办。

是否可以在 Function1 中等待直到 ((Number(playertimestamp) + 4000) < Number(currenttimeinmilliseconds)) 为真然后继续正常更新“PlayerData1”:newdata?我不希望 return issuccessful; 行在 "PlayerData1": newdata 执行之前执行。

我该怎么做?我如何在 Function1 中等待?

function Function1(string newdata)
{
var issuccessful = "";
var playertimestamp = GetTimestampInternalData();
var currenttimeinmilliseconds = getServerTimestamp();

if ((Number(playertimestamp) + 4000) < Number(currenttimeinmilliseconds))
{
server.UpdateUserInternalData({
PlayFabId: currentPlayerId,
Data: {
"PlayerData1": newdata
},
Permission: UserDataPermission.Private
});

issuccessful = true;

var timestampinmilliseconds = getServerTimestamp();
CreateTimestampInternalData(timestampinmilliseconds);
}

return issuccessful;
}

function GetTimestampInternalData()
{
var resultdata = server.GetUserInternalData({PlayFabId: currentPlayerId, Keys: "InternalDataTimestamp"});
var currenttimestamp = "";
if ((resultdata.Data.hasOwnProperty("InternalDataTimestamp")) && (resultdata.Data.InternalDataTimestamp.Value != null) && (resultdata.Data.InternalDataTimestamp.Value != ""))
currenttimestamp = resultdata.Data.InternalDataTimestamp.Value;
else
currenttimestamp = 0;

return currenttimestamp;
}

function CreateTimestampInternalData(currenttime)
{
server.UpdateUserInternalData({
PlayFabId: currentPlayerId,
Data: {
"InternalDataTimestamp": currenttime.toString()
},
Permission: UserDataPermission.Private
});
}

function getServerTimestamp()
{
var now = new Date();
var time = now.getTime();
return time;
}

编辑:如果我只想在执行下一行代码之前等待几秒钟,本文(将 sleep 引入 native JavaScript)中的函数 sleep(milliseconds) 对我有用:https://www.sitepoint.com/delay-sleep-pause-wait/

最佳答案

您可以使用 lodash 中的 debounce 函数例如。

A debounce function delays invoking your function until after X milliseconds have elapsed since the last time the debounced function was invoked.

用法:

_.debounce(Function1, 4000);

只有在自上次时间过去 4000 毫秒后,这才会运行您的函数。

关于javascript - 在我继续执行我的代码之前如何等待几毫秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59589572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com