异步是javascript的精髓

最近做了一个智能家居的APP,目前纯JS代码已经4000多行,不包括任何引入的库。还在不断升级改造中。。。这个项目到处都是异步。大多数都是3~4层调用。给我的感觉就是异步当你习惯了,你会发现很爽。下面举个最简单的例子?

你知道怎么返回一个异步调用的值吗?

也许你会这么干

你肯定得不到你想要的20

console.log( test() ); //结果10

为什么?

因为settimeout的原因,把a += 10放在队列中,等所有的同步代码完成之后,才轮到他执行。所以return的时候,这个a += 10 是没有执行的,而且你也不知道,异步到底什么时候完成? 这个是不确定的,哪怕你设置了10ms,未必是10ms。。。。如果队列前面有耗时较长的其他任务,10ms还是得不到响应。。。这样的例子太多了。比如,我最近的项目,控制空调的关和开。。很显然,这个时间受制于网络和芯片,以及空调的响应。。并不是设置了多长时间,就是那个时间返回。

那不知道他什么时候,返回,怎么拿到他的值?

用回调!

test2();

你GET到了吗?

下面就是一个简单的异步调用了:

Original: https://www.cnblogs.com/ghostwu/p/9278232.html
Author: ghostwu
Title: 异步是javascript的精髓

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/536569/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球