首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JavaScript延迟JavaScript函数调用

如何使用JavaScript延迟JavaScript函数调用
EN

Stack Overflow用户
提问于 2021-06-24 14:59:16
回答 1查看 41关注 0票数 0

我有几个代码片段。基本上,我想需要的是,当用户点击按钮时,输出应该延迟2-5秒。如果短信来了更方便,请稍等...单击按钮时(但不在按钮文本中)。或者像预加载器那样的“加载图像”。

请提供任何帮助/建议

代码语言:javascript
复制
function yes() {
  var button = document.getElementById('test');
  var name = document.getElementById('name');
  var age = document.getElementById('age');
  var location = document.getElementById('location');
  var str = 'Hello! <p> My name is Ashish</p><p>How Are You: ' + name.value +
    '';
  document.getElementById('test').innerHTML = str;
};
代码语言:javascript
复制
<label>
    Your Name: 
    <input id="name" />
</label>
<br />
<button onclick="yes()">Test</button>
<p id="test"></p>

EN

回答 1

Stack Overflow用户

发布于 2021-06-24 15:01:37

使用延迟函数const delay = (dur) => new Promise((r) => setTimeout(r, dur));可以得到如下结果:

代码语言:javascript
复制
const delay = (dur) => new Promise((r) => setTimeout(r, dur));

async function yes() {
  var button = document.getElementById('test');
  var name = document.getElementById('name');
  var age = document.getElementById('age');
  var location = document.getElementById('location');
  document.getElementById('test').innerHTML = "Please wait a while ...";
  await delay(1000);
  var str = 'Hello! <p> My name is Ashish</p><p>How Are You: ' + name.value +
    '';
  document.getElementById('test').innerHTML = str;
};
代码语言:javascript
复制
<label>
    Your Name: 
    <input id="name" />
</label>
<br />
<button onclick="yes()">Test</button>
<p id="test"></p>

或者一个简单的超时setTimeout(yes, 1000)

代码语言:javascript
复制
function yes() {
  var button = document.getElementById('test');
  var name = document.getElementById('name');
  var age = document.getElementById('age');
  var location = document.getElementById('location');
  console.log("clicked on Test-Button");
  var str = 'Hello! <p> My name is Ashish</p><p>How Are You: ' + name.value +
    '';
  document.getElementById('test').innerHTML = str;
};
代码语言:javascript
复制
<label>
    Your Name: 
    <input id="name" />
</label>
<br />
<button onclick="setTimeout(yes, 1000)">Test</button> <!-- timeout -->
<p id="test"></p>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68110938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档