javascript - js如何实现函数的连续调用
本文介绍了javascript - js如何实现函数的连续调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
比如我在写自定义过滤的时候使用这样的语法
var filters = angular.module('filters', []);
filters.filter('quality', function() {
}).filter('level', function() {
}).filter('RMB', function() {
}).filter('button', function() {
});
请问如何定义实现类似
a().b().c()或者a().a().a()这样的调用
解决方案
非异步的链式调用
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);
})
这篇关于javascript - js如何实现函数的连续调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文