thenjs 学习

thenjs 是一个js的异步控制流程库

特点

  • 可以像标准的Promise那样,把N多异步回调函数写成一个长长的then链,并且比Promise更简洁自然。因为使用标准Promise的then链,其中的异步函数都必须转换成Promise,Thenjs则无需转换,像使用CallBack一样执行异步函数即可。
  • 强大的Error机制,可以捕捉任何同步和异步的异步错误。
  • 开启debug模式,可以把每一个then链,运行结果输出到debug函数,如果没有则使用console.log。

使用

我们先看下thenjs的使用,有两种使用方式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const Thenjs = require('thenjs')

// 第一种
Thenjs().then((cont, arg) => {
cont(null, 'thenjs arg')
}).fin((cont, err, result) => {
console.log(`1、result: ${result}`);
})

// 第二种
Thenjs((cont) => {
cont(null, 'thenjs arg');
}).then((cont, arg) => {
console.log(`2、result: ${arg}`);
})

cont就是continue的缩写,就是用来告诉thenjs是否继续执行后面的方法。像上面的第二种,如果不调用cont方法,后面的then链就不会执行。
cont方法的第一个参数是错误信息,第二个参数是用来传递到下一个then链中。如果第一个参数如果传递了错误信息,后面的then链都不会执行,会直接执行后面的fin方法或fail方法。

then