发表于: 2019-11-18 23:43:02

1 1310


今日完成的事

   和后端合作终于完成微信登陆的授权

明日计划的事

    继续调接口

收获

    promise的链式写法,降低耦合性

将一串代码模块化(即封装为不同方法),每个模块(方法)都有自己的功能。封装方法越多,耦合度越低。模块与模块之间接口的复杂程度,模块之间联系越复杂,耦合度越高。

先执行setDelay在执行setDelaySecond,只需要在第一个then的结果中返回下一个Promise就可以一直链式写下去了,相当于依次执行:

这里一定要提到一点:

then式链式写法的本质其实是一直往下传递返回一个新的Promise,也就是说then在下一步接收的是上一步返回的Promise,理解这个对于后面的细节非常重要!!

那么并不是这么简单,then的返回我们可以看出有2个参数(都是回调):

第一个回调是resolve的回调,也就是第一个参数用得最多,拿到的是上一步的Promise成功resolve的值。

第二个回调是reject的回调,用的不多,但是求求大家不要写错了,通常是拿到上一个的错误,那么这个错误处理和catch有什么区别和需要注意的地方呢?

修改上面的代码,可以看到输出结果是:进到了then的第二个参数(reject)中去了,而且最重要的是!不再经过catch了。

那么我们把catch挪上去,写到then错误处理前:

可以看到先经过catch的捕获,后面就没错误了。

可以得出需要注意的:

catch写法是针对于整个链式写法的错误捕获的,而then第二个参数是针对于上一个返回Promise的。

两者的优先级:就是看谁在链式写法的前面,在前面的先捕获到错误,后面就没有错误可以捕获了,链式前面的优先级大,而且两者都不是break, 可以继续执行后续操作不受影响。


昨天说了耦合性,今天写了内聚性

一、巧合内聚:指一个模块内的各个处理元素之间没有任何联系。

二、逻辑内聚:指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。

三、时间内聚:把需要同时执行的动作组合在一起形成的模块。

四、通信内聚:指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据。

五、顺序内聚:指一个模块中各个处理元素都密切相关于同一功能且必须执行顺序执行,前一个功能元素的输出就是下一个功能元素的输入。

六、功能内聚:是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。



返回列表 返回列表
评论

    分享到