需要一个延迟函数javascript

Need a delay function javascript(需要一个延迟函数javascript)
本文介绍了需要一个延迟函数javascript的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我目前正在发出 xmhhttp 请求,但该网站需要一些时间来加载,所以我只得到 ReadyState = 3 和状态 = 200.所以我需要等到 readystate = 4 的东西,但我想限制如果readystate = 4,它每秒只检查一次,否则什么也不做.

Hi im currently making a xmhhttp request, but the site takes some time to load, so I only get the ReadyState = 3 and status = 200. So I need something that waits until the readystate = 4, but I want to limit this function so that it only checks once a second if the readystate = 4, else do nothing.

这样的延迟函数长什么样子?

How can such a delay function look like?

   if (xmlhttp.readyState==4 && xmlhttp.status==200)//Add the delay here so that the else doesn't occur
    {
    var txt=xmlhttp.responseText;
    .....
  else {

    document.write("status: " + xmlhttp.readyState + " " + xmlhttp.status);
  }

推荐答案

我们可以写一个函数来检查你的 xmlhttp-object 的状态:

We can write a function for checking the state of your xmlhttp-object:

var checkState = function(xmlhttp, callback) {
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
    callback(whatever, arguments, that, you, want, to, send);
  } else {
    // Check back again 1 sec later
    setTimeout(checkState, 1000);
  }
};

那么你可以这样使用它:

Then you can use it like this:

checkState(xmlhttp, function(whatever, arguments, you, need) {
  // the code here will be run when the readyState is 4 and the status is 200
});

不过有两件事:

  • 无论 readyState 是什么,checkState 函数都会返回,因此请确保您只在回调中执行依赖于它的操作,而不是之后.
  • 如果 readyState 和 status 从来没有得到你想要的值,那么你就不走运了(但你可以扩展函数以接受第二个回调来处理超时情况).

这篇关于需要一个延迟函数javascript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)