比如我在写自定义过滤的时候使用这样的语法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 回答
![?](http://img1.sycdn.imooc.com/545861f00001be3402200220-100-100.jpg)
大话西游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); })
添加回答
举报
0/150
提交
取消