为了账号安全,请及时绑定邮箱和手机立即绑定

js如何实现函数的连续调用

js如何实现函数的连续调用

跃然一笑 2018-08-15 14:13:00
比如我在写自定义过滤的时候使用这样的语法var filters = angular.module('filters', []); filters.filter('quality', function() {      }).filter('level', function() {      }).filter('RMB', function() {     }).filter('button', function() { });请问如何定义实现类似a().b().c()或者a().a().a()这样的调用
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

非异步的链式调用

var obj = {};
    obj.func1 = function(){        console.log('func1');        return this;
    };
    obj.func2 = function(){        console.log('func2');        return this;
    };
    obj.func1().func2();

异步的链式调用(Promise)

function runFunc1(){        var p = new Promise(function(resolve,reject){            //异步操作
            setTimeout(function(){                console.log('success runFunc1');
                resolve('数据1');
            },5000);
        });        return p;
    }    function runFunc2(){//如果promise没有运行在函数内部会立即执行
        var p = new Promise(function(resolve,reject){            //异步操作
            setTimeout(function(){                console.log('success runFunc2');
                resolve('数据2');
            },5000);
        });        return p;
    }

    runFunc1()
    .then(function(data){        console.log(data);        return runFunc2();
    })
    .then(function(data){        console.log(data);
    })


查看完整回答
反对 回复 2018-09-14
  • 1 回答
  • 0 关注
  • 1427 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信