自己写思路求指点
发布于 5 年前 作者 gjc9620 2234 次浏览 最后一次编辑是 3 年前 来自 分享
       Mywaterfall ={
        obj:function obj (fun){
            this.fun = fun
        },
        go:function  (){
            var list = [].slice.call(arguments) ;
            list[0] =  new Mywaterfall.obj(list[0]);

            list.forEach(function(v,i){
                v.cb = list[i+1]= new Mywaterfall.obj(list[i+1]);
            })
            list[0].fun();
        }
    }

    Mywaterfall.go(
            function(){
                this.cb.fun(null,3)
            },
            function(err,value){
                if(err){
                  return
                }

                this.cb.fun("err",3)
            } ,
            function(err,value){

                if(err){
                    console.log(err)
                    return
                }

                console.log(value)
            }
    )
\n``` 

自己想得思路但是对err的处理拿不出来。 原理如下。。
```js\n 
	var f3 = {
        fun:function(v){
            console.log(v)
        }
    }
    var  f2 = {
        fun:function(v){
            this.cb.fun(v+1)
        } ,
        cb:f3
    }
    var f1 ={
        fun:function(){
            this.cb.fun(1)
        },
        cb:f2
    }

    f1.fun()
\n``` 

一开始就是这样想得。然后写就写了下,这种思路有什么弊端吗,node新手,求指点
4 回复

waterfall没啥问题,下面那个oo的写法还凑合,还有更好的

@i5ting 这种实现思路如何?

@gjc9620 这种对象叫plain old object,哈哈,你说呢?

@i5ting 恩 感觉可以这样实现 就写了一下。。

回到顶部