gpt4 book ai didi

javascript - 如何在 Blazor 中模拟 setTimeout()?

转载 作者:行者123 更新时间:2023-12-04 16:39:38 24 4
gpt4 key购买 nike

我正在尝试复制一个简单的 JS 方法,但在 Blazor 中。这个想法是在给定的单词/句子/等中输入每个字符。 W3Schools有一个很好的例子来快速做到这一点。因此,鉴于他们的示例,如何在 C# 中和在 JS 中做同样的事情?

var i = 0;
var txt = 'Lorem ipsum dummy text blabla.';
var speed = 50;

function typeWriter() {
if (i < txt.length) {
document.getElementById("demo").innerHTML += txt.charAt(i);
i++;
setTimeout(typeWriter, speed);
}
}
我确信这不是一个很好的方法,因此在这里,但我认为必须有一种方法通过线程来做与 setTimeout 相同的事情。只是不知道如何去兴奋剂。还尝试通过代码隐藏中的变量更新 HTML。
以下是我迄今为止尝试过的:
HTML:
<div>
@message
</div>
Blazor 代码背后:
using System.Threading;

namespace MyApp.Pages
{
public partial class Index
{
private static string message = "";
private static string toType = "Lorem ipsum dummy text blabla.";
private static int charIndex = 0;

protected override void OnInitialized()
{
int seconds = 5000;
var timer = new Timer(TypeMessage, null, 0, seconds);
}

protected static void TypeMessage(object o)
{
if (charIndex < toType.Length)
{
message = message + toType[charIndex];
charIndex++;
}
}
}
}

任何关于什么是最好的方法的建议都值得赞赏!

最佳答案

尝试类似的东西

Task.Run(async() =>
{
for (int i=1; i <= Message.Length; i++)
{
TextToShow = Message.Substring(0, i);
InvokeAsync(StateHasChanged);
await Task.Delay(500);
}
}) ;

关于javascript - 如何在 Blazor 中模拟 setTimeout()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63532483/

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