1.回调函数
function f1(callback){
setTimeout(function () {
// f1的任务代码
callback();
}, 1000);
}
2.事件监听
f1.on('done', f2);
function f1(){
setTimeout(function () {
// f1的任务代码
f1.trigger('done');
}, 1000);
}
3.观察者模式
我们假定,存在一个"信号中心",某个任务执行完成,就向信号中心"发布"(publish)一个信号,其他任务可以向信号中心"订阅"(subscribe)这个信号,从而知道什么时候自己可以开始执行。这就叫做"发布/订阅模式"(publish-subscribe pattern),又称"观察者模式"(observer pattern)。
jQuery.subscribe("done", f2);
function f1(){
setTimeout(function () {
// f1的任务代码
jQuery.publish("done");
}, 1000);
}
jQuery.unsubscribe("done", f2);//取消订阅(unsubscribe)。
4.promise对象
function doSomething(){
return new Promise(function(resolve){
setTimeout(function(){
console.log('执行结束');
let result = 6;
resolve(result);
},100);
});
}
doSomething().then(result=>{
console.log('接收到结果为:'+result);
});
5.generator函数
function doSomething(){
setTimeout(function(){
let result = 6;
it.next(result);
},100);
}
function *gener(){
var result = yield doSomething();
console.log(result);
}
let it = gener();
it.next();
6.async(ES7)
function doSomething(){
return new Promise(resolve=>{
setTimeout(function(){
let result = 6;
resolve(result);
},100);
});
}
async function action(){
let result = await doSomething();
console.log(result);
}
action();
原文:https://blog.csdn.net/weixin_41697143/article/details/82758886