用javascript介绍回调控制过程

用javascript介绍回调控制过程
Javascript中无处不在的回调是过程控制的灾难,缺点是显而易见的:

1。如果没有显式返回,很容易产生多余的过程,以及产生的bug。

2。使代码无限嵌套,难以读取。

让我们谈谈如何避免上述问题。

第一个问题是习惯问题,当使用回调时,常常会让人忘记使用返回,在这种情况下,尤其是在使用咖啡脚本(虽然它将收集最终数据作为返回值时,但是返回值不一定代表您在编译的Javascript中的思想)。

复制代码代码如下所示:

a(错误,回调)>

回调()

log'you会看到我的控制台。

B = >

log'i是回调的控制台。

一个(错误,B)
在这种所谓的错误第一代码风格中,显然我们不想犯错误。方法A中的后续代码仍然被执行,但它不希望使用抛出来挂断整个进程。(死亡或优雅地死去),上面的代码会产生bug。

一个解决办法是诚实地对待…其他的…但我更倾向于做以下事情:

复制代码代码如下所示:

a(错误,回调)>

如果错误返回回调()

控制台。log'you不会看到我

B = >

log'i是回调的控制台。

一个(错误,B)
Javascript异步方法中的大多数返回值没有什么用处,所以这里返回作为进程控制角色使用,这比…其他的…更少的代码。

第二个问题是娘胎里带来的,很难根除。

一个好的方法是使用一些过程控制模块,使代码更有组织性。例如,如果是一个很好的模块,提供一系列的接口,包括迭代,循环,条件语句,甚至一个排队系统。下面的例子可以证明的优点和缺点两种写作。

复制代码代码如下所示:

#正常

第一=(回调)>

控制台。log'i是第一功能

()回调

第二=(回调)>

控制台。log'i是第二功能

()回调

第三=(- >)

控制台。log'i是第三功能

第一>

二>

第三()

#使用异步

async =需要('async)

async.waterfall {

第一,

二,

第三

(错误)- }。
作为明智的你,你会选择哪一个。

tag:回调控制过程电脑软件Javascript

相关内容