首页 > 解决方案 > 如何提醒异步函数同一函数的另一个实例已触发?

问题描述

我想在我的函数中创建一个警报,以跟踪同一函数的任何其他实例是否在 15 秒内触发。这就是我到目前为止所拥有的:

 bar = 0;

 async function Counting() {
   bar += 1;
   foo = bar;
   new Promise(resolve => setTimeout(resolve, 5000));
   if (bar == foo) {
     //Do something
   }
   else {
     return;
   }
 }

我使用 bar 作为全局计数器,使用 foo 作为函数实例计数器,但由于某种原因,函数的所有实例同时更新。

如何检查此函数是否在 15 秒的等待期内触发,然后在这种情况下停止该函数的所有先前实例?

标签: javascriptasynchronousasync-awaites6-promise

解决方案


今天早些时候,我问了一个类似的问题,@FedericoMoretti 用户名的某个人能够帮助我。他建议使用 let 和 const 变量,这在我的具体情况下起到了作用。

 let bar = 0;

 async function Counting() {
   bar += 1;
   const foo = bar;
   new Promise(resolve => setTimeout(resolve, 5000));
   if (bar == foo) {
     //Do something
   }
   else {
     return;
   }
 }

推荐阅读