最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何检查程序的NodeJS即将存在

运维笔记admin9浏览0评论

如何检查程序的NodeJS即将存在

如何检查程序的NodeJS即将存在

说某人实施了不同的setTimeout函数:

const setTimeout = (func, ms) => {
  const future = Date.now() + ms;
  while (Date.now() < future) {
    // do nothing
  }
  func();
};

这(对这个问题的简单)具有几乎相同的界面和原来的。我如何,因为使用它的开发人员,可以验证它没有任何初始化代码异步?

我想知道是否会存在我的节目我用setTimeout调用之后。如果setTimeout使用同步码实现时,程序将存在(不久)之后。如果setTimeout的是实行异步,异步代码完成后,程序将只存在。

更具体地讲,我可以做这样的事情?

setTimeout(()=>{},1000);
const isAnyAsyncCodeWillRun = ...;
if(isAnyAsyncCodeWillRun){
   console.log('Program wont exist right now, only in about 1000ms');
} else {
   console.log('Program will exist now');
}
回答如下:

是的,术语“异步”意味着该函数完成之前做的工作,并提供当回调以后调用返回。所以,你可以使用

let done = false;
let returned = false;
unknownFunction(() => {
    done = true;
    if (returned) console.log("callback is getting called asynchronously");
});
returned = true;
if (done) console.log("callback was called synchronously");

当然,你无法同步确定功能是否稍后会做一些事情异步(除非你的环境,这提供了特殊的钩子)。

发布评论

评论列表(0)

  1. 暂无评论