如何在Javascript中实现“ wait()”功能?

时间:2018-08-08 09:02:27

标签: javascript typescript callback async-await wait

我希望我的代码等待,直到下面的演示中正确定义了一些变量x:

var x;
call_some_async_function(arg, success_callback);
wait(function () { return x == null || x == undefined; });  // until the `success_callback()` is called

显然,Javascript / Typescript中没有wait()函数。但是,处理承诺的对象有awaitasync关键字。
来自C ++ / Java背景,我想知道我们是否可以以合理的方式实现wait()功能以实现非关键性能。

wait (Continue: () => boolean)
{
  setTimeout(function() 
             {
               if(Continue())
                 wait(Continue);
             }, 
             10 /* milliseconds */);
}

问题

  • 以上代码是实现wait()的正确方法吗? (这也是一个不好的递归)。对于非关键的基于浏览器的系统,请假设它。
  • 是否有任何优雅的方式或库?

0 个答案:

没有答案