在完成函数执行之前,如何让JavaScript输出消息?

在完成函数执行之前,如何让JavaScript输出消息?,javascript,flask,Javascript,Flask,我有一个用Flask构建的网页,它提供我的python代码,还有一个用HTML和JavaScript构建的模板/网页。我有一个简单的网页,目前有一个按钮。当用户单击按钮时,它调用一个JavaScript函数。该函数执行几个需要一些时间的任务。在函数执行期间,文本区域会更新,并更新正在发生的事情。然后函数完成执行 但是,JavaScript函数中的这些消息只有在函数完成执行后才能同时显示。也就是说,在Javascript函数完成之前,我无法更新页面上的任何HTML对象。如何实时更新HTML对象,以

我有一个用Flask构建的网页,它提供我的python代码,还有一个用HTML和JavaScript构建的模板/网页。我有一个简单的网页,目前有一个按钮。当用户单击按钮时,它调用一个JavaScript函数。该函数执行几个需要一些时间的任务。在函数执行期间,文本区域会更新,并更新正在发生的事情。然后函数完成执行

但是,JavaScript函数中的这些消息只有在函数完成执行后才能同时显示。也就是说,在Javascript函数完成之前,我无法更新页面上的任何HTML对象。如何实时更新HTML对象,以便用户能够在执行这个较长的函数时获得有关正在发生的事情的信息

一些示例代码。我的
index.html
如下所示:

script type="text/javascript">
function executeCode() {
     document.getElementById("outputLog").innerHTML += "<br>Beginning the function";
     ** do some time consuming stuff **
     document.getElementById("outputLog").innerHTML += "<br>Almost done";
     ** do some more stuff **
     document.getElementById("outputLog").innerHTML += "<br>Done!";
}

...

<button onclick="executeCode()">Press Me!</button>
<p id="outputLog"></p>
scripttype=“text/javascript”>
函数executeCode(){
document.getElementById(“outputLog”).innerHTML+=“
开始函数”; **做一些耗时的事情** document.getElementById(“outputLog”).innerHTML+=“
几乎完成”; **多做点事** document.getElementById(“outputLog”).innerHTML+=“
完成!”; } ... 按我!


但是,当调用函数时,存在一个等于函数执行总时间长度的延迟,之后所有三条消息同时显示为一个文本块。当函数运行时,我需要做什么才能允许用户实时更新?

在javascript中使用promise对象

var promise1 = new Promise(function(resolve, reject) {
  resolve('Success!');
});

promise1.then(function(value) {
  console.log(value);
  // expected output: "Success!"
});
通常使用ajaxfunction.then(function4success(),function4failer()) 或者您可以使用var
promiseallobj=newpromiseall(ajaxfunction1、ajaxfunction2等)


有关更多检查链接-

我相信**做一些耗时的事情**是异步调用,如果是这样,请使用wait/promise更改文本区域中的消息,同时检查函数调用堆栈。如果函数确实耗时,您可以使用web workers(JavaScript中的并行处理或线程)。@VinodkumarG,您是对的,我使用一些AJAX来执行服务器端函数,该函数返回一个字符串。我没有承诺方面的经验,也没有如何构建这个函数来利用它们的经验。我查阅了一些教程,但不确定如何在函数中传递消息。你能举个简单的例子吗?
promiseallobj.then(successcallbackfunction(),failurecallbackfunction())