1、回调函数
fn1( fn2 );
2、事件监听
fn1.on('done', fn2);function fn1() {setTimeout(function(){fn1.trigger('done');},1000)
}
3、发布-订阅
(1)fn2像“信号中心”订阅了done信号Jquery.subscribe("done", fn2);(2) fn1向信号中心发布信号function fn1(){setTimeout(function(){Jquery.publish("done"); },2000) }
4、 promises
fn1().then(fn2);function fn1(){var dfd = $.Deferred();setTimeout(function(){resolve();},2000);
}
5、generator
var fetch = require('node-fetch');function * gen(){var url = "xxxxx.github";var result = yelid fetch(url);console.log(result.do);
}var g = gen();
var result = g.next();result.value.then(function(data){return data.json();
}).then(function(data){g,next(data)
})
6、 async 函数
async function getStockPriceByName(name) {var symbol = await getStockSymbol(name);var stockPrice = await getStockPrice(symbol);return stockPrice;
}getStockPriceByName('goog').then(function (result) {console.log(result);
});