标签: settimeout

javascript中函数执行的优先级

我不明白为什么第二个函数调用(在函数体之后)优先于一个体内的函数体?

function a(){
  var num = 5;
  console.log( ++num );
  setTimeout( a, 100 );
};
setTimeout(a,2000)
Run Code Online (Sandbox Code Playgroud)

javascript function settimeout order-of-execution

-2
推荐指数
1
解决办法
5208
查看次数

当等待值低得多时,为什么Javascript在setTimeout中说"回调不是函数"?

我在javascript中编写了一个基本的作业运行器(也使用了一些JQuery,但那是另一天的另一个故事)我遇到了这个奇怪的问题:

我运行的方法等待所有作业完成:

$.getAllProducts = function(callback){
      $.getProductDetails('|ALL|', function(allProductsResult){ //intentionally
          var objAllProducts = JSON.parse(JSON.parse(allProductsResult));
          var objProductsBuiltUp = {};

          var productLength = objAllProducts.length;
          $.totalJobs(productLength);

          var processed = 0;
          $.completedJobs(processed);

          $.each(objAllProducts, function(i,v){
              $.getProductDetails(objAllProducts[i].ProductCode, function(result){
                $.mergeShallow(objProductsBuiltUp, JSON.parse(JSON.parse(result)));
                processed++;
                $.completedJobs(processed);
              });
          });

          $.wait(0, false, function(isDone){ //allow at least 50ms wait time, otherwise this confuses javascript into thinking there are no callbacks
            if (isDone){
              callback(objProductsBuiltUp.ProductComponents);
            }
          });
      });
    }
Run Code Online (Sandbox Code Playgroud)

工作的处理程序

    $.checkProgress = function() {
        return $.jobs === $.completed;
    }

    $.totalJobs = function(total) {
        $.jobs = total;
    } …
Run Code Online (Sandbox Code Playgroud)

javascript jquery settimeout

-2
推荐指数
1
解决办法
582
查看次数

延迟后如何执行函数

我需要在将来执行一个函数,所以我这样做:

   setTimeout(function(){ console.log("hi");}, 3000));
Run Code Online (Sandbox Code Playgroud)

问题是我只想在 3000 毫秒过去后打印。任何人都可以帮助我吗?

javascript settimeout setinterval node.js

-2
推荐指数
1
解决办法
7110
查看次数

即使没有明显错误,setTimout也没有延迟

function abc() {
    console.log("ok")
}

setTimeout(abc, 10000000000000000000000000000000)
Run Code Online (Sandbox Code Playgroud)

当我运行这段代码时,它应该将 ok 的打印延迟 10000000000000000000000000000000ms,但它会立即打印出来。

我该如何解决?

javascript settimeout

-2
推荐指数
1
解决办法
61
查看次数

javascript中的setTimeout立即执行超时代码而不是等待

我的javascript代码中有以下行

setTimeout(reload(), 30000);
Run Code Online (Sandbox Code Playgroud)

我希望等待30秒然后调用重载功能.

问题是重新加载函数正在被立即调用而不是等待超时,为什么立即setTimeout调用重载函数而不是等待指定的时间?该setTimeout呼叫也正在做一个onloadend FileReader功能,如果这将使任何区别.

javascript settimeout

-3
推荐指数
1
解决办法
267
查看次数

JavaScript setTimeout无限循环,不带递归

我不能使用Obfuscator.io来uglify我的JS脚本,因为它包含一个setTimeout调用自身的函数.
MCVE:

function repeater() {
    // DO SOME STUFF...
    setTimeout(repeater, 100);
}
repeater();
Run Code Online (Sandbox Code Playgroud)

重现所需的自定义模糊处理设置:
- 标识符名称生成器:Mangled
- 保留名称:$- jQuery

Obfuscator.io的错误消息:

错误:类t中的@postConstruct错误:类t中的@postConstruct错误:超出了最大调用堆栈大小

我已经阅读了其他一些Stack Overflow问题.据我所知,调用setTimeout(func)里面func实际的递归.

但是,Obfuscator.io的算法仍然无法处理自我调用的setTimeout延迟.

如何在setTimeout不在函数本身中调用它的情况下使用重复执行的函数?我不想使用,setInterval因为我想在函数代码运行后每次都开始延迟. setInterval忽略了这一点.

javascript stack-overflow obfuscation jquery settimeout

-16
推荐指数
1
解决办法
562
查看次数