1.0.6 • Published 6 years ago

esdese v1.0.6

Weekly downloads
1
License
ISC
Repository
github
Last release
6 years ago

esdese

javascript (goodbye callback and promise) 回调流程控制 跟回调、promise 说再见

example:

flow 串行

esdese(
    function(){
        console.log('one request');
        setTimeout(this, 2000);
    },
    function(){
        console.log('two request');
        setTimeout(this, 2000);
    },
    function(){
        console.log('three request');
        //可以通过param先传递一个参数过去
        setTimeout(this.param('test'), 2000);
    },
    function(a){
        console.log(a)
        // test
    }
)
//console
// one request    time: 0
// two request    time: 2000
// three request  time: 4000
// test           time: 6000

loop 循环

esdese(
    function(){
        ['a', 'b', 'c'].forEach(this);
    },
    function(item){
        console.log(item); 
        //内部默认的数组和对象  其他需自己定义
        // this.data.list.push(a);   default Array => list
        // this.data.map.item.a = item;   default Object => map
        // this.reset();  reset list => [] and map => {}   重置默认的数组和对象
        this('success');
    },
    function(result){
        console.log(result);
    }
);
//console
// a
// success
// b
// success
// c
// success

need wait

esdese(
    function(){
        ['a', 'b', 'c'].forEach(this.wait);
        this.start();
    },
    function(item){
        console.log(item); 
        this.end('success')
    },
    function(result){
        console.log(result)
    }
);
//console
// a
// b
// c
// success

parallel 分组并行

esdese(
    function(){
        var group = this.group();
        //1: group has name
        // setTimeout(group('a'), 2000);
        // setTimeout(group('b'), 2000);

        for(var i = 0; i < 3; i ++){
            //2: group no name 
            //3: group has name
            setTimeout(group(/*'time'*/).param(i), 1000 * i);
        }
    },
    function(a, b, c){
        console.log(a, b, c);
        //1:    { a: undefined, b: undefined } undefined undefined
        //2:    0 1 2
        //3:    { time: [ 0, 1, 2 ] }  undefined  undefined
    }
)

Support

>= ie6

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago