标签: settimeout

Javascript 将 0.1 添加到 0.2 导致 0.30000000000000004

可能重复:
Javascript 数学错误:不精确的浮点数

我有以下代码来制作动画(doIt 制作动画但不相关)。

function recur(max, i){
    console.log("i: " + i);
    if ( i <= 1){
        setTimeout(function(){
            // doIt(max,i);
            recur(max, i + 0.1);                
        },100);
    } else {
        // OK
    }
}
recur(16,0);
Run Code Online (Sandbox Code Playgroud)

但是,i 值不一致。对于以下代码,输出为(Google Chrome 20):

i: 0 
i: 0.1 
i: 0.2 
i: 0.30000000000000004
i: 0.4 
i: 0.5 
i: 0.6 
i: 0.7 
i: 0.7999999999999999 
i: 0.8999999999999999 
i: 0.9999999999999999 
i: 1.0999999999999999 
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我想要 0.3 不是一个如此接近的数字。不幸的是,这在每次迭代中都会发生。

javascript settimeout

0
推荐指数
1
解决办法
7930
查看次数

JavaScript超时对象到底是什么?

这是一些示例代码的链接。

http://jsfiddle.net/4djNt/2/

在开始测试之前,我假设a的返回值setTimeout()将是某种浏览器对象。

实际上,这似乎是一个简单的整数。我还相信,将的返回值分配给setTimeout全局变量将意味着只能有一个这样的对象。但是,如您所见,如果您多次单击“启动计时器”按钮,则可以同时运行多个计时器。

例如

  • 我点击开始按钮
  • 脚本创建超时
  • timeout 1,由于五秒钟内起火
  • 一秒钟后,我再次单击,现在有一个 timeout 2
  • 现在我timeout 1要在四秒钟和timeout 2五秒钟之内开火
  • 我单击停止按钮,只有timeout 2清除

可以通过始终在设置之前清除当前超时变量来解决用户单击创建多个计时器的问题。但是我真的很想了解Javascript在这里实际上在做什么。

javascript javascript-events settimeout

0
推荐指数
1
解决办法
1486
查看次数

$ .mobile.showPageLoadingMsg()不起作用

我是jquery mobile的新手,同时发出ajax请求我用来显示加载消息,直到从服务器获得响应.我为此尝试了很多但没有用.任何人都可以提前帮助我解决这个问题.

吼叫ajax电话代码

        $.ajax({ 
    url: "url", 
    type: "GET",
    contentType: "application/json; charset=utf-8",                  
    beforeSend: function(){
     setTimeout(function(){
     $.mobile.loading('show');},1);  
     },
     success: function(msg) {
      // $.mobile.loading('hide');
     $.each(msg.empWall, function() {   
      alert(this.name);          
      });
      },
      error: function(err) {
      alert(err.toString());
      },
      complete: function(){
      setTimeout(function(){
     $.mobile.loading('hide');
     },1);  
     });
Run Code Online (Sandbox Code Playgroud)

javascript jquery settimeout jquery-mobile cordova

0
推荐指数
1
解决办法
2201
查看次数

这些代码之间有什么区别?

有什么区别:

k = setInterval(function(){loop();},100);
Run Code Online (Sandbox Code Playgroud)

k = setInterval(loop(),100);
Run Code Online (Sandbox Code Playgroud)

为什么第二个运行一次,比如setTimeout()函数和第一个每1/10秒运行一次?

javascript loops settimeout setinterval

0
推荐指数
1
解决办法
53
查看次数

Java中延迟函数调用而不暂停应用程序

我希望我的应用程序在标签中显示某些内容几秒钟,然后进行更改。但我不希望我的应用程序在这段时间处于休眠状态。它必须具有功能性。

wait()并使sleep()我的应用程序在此期间无法工作。Java中是否有类似javascript的东西setTimeout(),会继续执行代码并在一段时间后执行一行?

java sleep delay settimeout wait

0
推荐指数
1
解决办法
1591
查看次数

Javascript setTimeout 和原型

我的任务很简单,我需要两个工人运行。

var taskNum = 0;

function Task() {
  var me = this;
  this.name = '#' + ++taskNum;

  Task.prototype.run = function () {
   console.log(me.name);
   setTimeout(me.run, 1000);
  }
}

var t1 = new Task();
t1.run();
var t2 = new Task();
t2.run();
Run Code Online (Sandbox Code Playgroud)

输出应该是 1,2,1,2,但它是: 1 2 1 2 2 2 2 2 2

这可以通过将“Task.prototype.run”更改为“this.run”来解决。但是可以通过不删除原型来解决这个问题吗,因为我在复杂的解决方案中需要它?

javascript prototype this settimeout

0
推荐指数
1
解决办法
1991
查看次数

如何在javascript或jquery超时刷新或重新加载页面

如何仅在 javascript 或 jquery 中使用超时刷新或重新加载页面

  • 特定的类是可见的或
  • 找不到img

我找到了这个/sf/answers/1035128041/但没有超时,当我在一个 omg 面前找不到时,什么也没发生。

javascript jquery refresh reload settimeout

0
推荐指数
1
解决办法
2万
查看次数

Vue 方法中的 setTimeout 不起作用

在我的小型 Vue 应用程序中,我试图从另一个方法 (buttonClick) 中使用不同的参数调用相同的方法 (emptyDivision)。我为该方法的第一次调用设置了 5 秒超时,但是当我通过执行 buttonClick 触发这两个函数时,无法识别此延迟。

<html>
   <head>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.10/vue.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/vuex/2.1.1/vuex.min.js"></script>
   </head>
   <body>
       <div id="app">
           <button v-on:click="buttonClick">Simulate Placement</button>
           <h1>Random Division 1</h1>
           <p>{{A.One}}</p>
           <p>{{A.Two}}</p>
           <h1>Random Division 2</h1>
           <p>{{B.One}}</P>
           <p>{{B.Two}}</p>
       </div> 
       <script type="text/javascript">
          new Vue({
              'el': '#app',
              'data': {
                  'A': {'One': "", 'Two': "" },
                  'B': {'One': "", 'Two': "" },
                  'Division1': ["Steelers", "Ravens"],
                  'Division2': ["Broncos", "Raiders"],
              }, 
              'methods': {
                'emptyDivision': function(division){
                   this.A[division] = this.popTeam(division)[0];
                   this.B[division] = this.popTeam(division)[0];
                },
                'popTeam': function(division) {
                   if (division === "One"){
                     return …
Run Code Online (Sandbox Code Playgroud)

javascript settimeout vue.js vuejs2

0
推荐指数
1
解决办法
3016
查看次数

停止等待 setTimeOut 函数

我有一个名为 delay() 的 Typescript 函数,它在异步/等待模式下调用。

play(){
   (async () => { 
       await this.delay(90000);
       this.player.play();
   })();
}

delay(ms: number) {
    return new Promise(resolve => setTimeout(resolve, ms));
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在完成 90 秒之前“杀死/中断”setTimeout 并在再次调用“播放”函数时再次开始计数?

javascript settimeout typescript

0
推荐指数
1
解决办法
806
查看次数

将函数作为参数传递给递归 setTimeout

此代码不起作用:

  var counter = 0;

  kick(print);

  function kick(f) {
    setTimeout(function(){
      f();  // problem here;
      kick();
    }, 500);
  }

  function print(){
    console.log(counter++);
  }      
Run Code Online (Sandbox Code Playgroud)

浏览器控制台给出以下错误:

Uncaught TypeError: f is not a function

如何f()在所需的点正确调用?

javascript recursion settimeout

0
推荐指数
1
解决办法
41
查看次数