【发布时间】:2019-10-16 19:34:21
【问题描述】:
问题如下:我想修改一个 h1(id="waiting"),然后执行一个需要几秒钟才能完成的函数(解决)。
function solveWrapper(table) {
document.getElementById("waiting").innerHTML = "Wait please, Nurikabe is being solved...";
alert("alert");
var currentState = new State(table);
solve(table, currentState);
}
使用此代码,我在调用求解函数之前收到警报,但只有在该函数执行完成后才修改 h1 标记。有谁知道如何解决这一问题? 这是调用solveWrapper的按钮:
<button onclick="solveWrapper(grid);">Solve</button>
这是完整的代码:https://github.com/jackowski626/projects/blob/master/Nurikabe_SJ_Solver.html
【问题讨论】:
-
将调用
solve()放入超时处理程序中 -
@Pointy 我将它设置为 5 秒超时,但它没有任何改变
-
你能添加你用来调用函数的代码(solveWrapper)吗?也许还有另一个函数/代码正在进行更改,换句话说,元素正在正确更新
-
您可以使用 callback 函数来实现,或者修改您的代码以返回 Promise。那应该可以解决。 (或 async await 语法。)
-
@LeonidasMenendez 它是通过 html 按钮调用的。这可能是问题
标签: javascript html