Promise初探
在JavaScript的世界中,所有代码都是单线程执行的。
由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行。异步执行可以用回调函数实现:
function runAsync1() { var p = new Promise(function (resolve, reject) { //做一些异步操作 setTimeout(function () { console.log('异步任务1执行完成'); resolve('11111'); }, 1000); }); return p; } function runAsync2(data) { var p = new Promise(function (resolve, reject) { //做一些异步操作 setTimeout(function () { console.log('异步任务2执行完成'); resolve(data); }, 2000); }); return p; } function runAsync3(data) { var p = new Promise(function (resolve, reject) { //做一些异步操作 setTimeout(function () { console.log('异步任务3执行完成'); console.log(data); resolve(data); }, 2000); }); return p; } runAsync1() .then(function (data) { console.log(data); return runAsync2("2222222"); }) .then(function (data) { console.log(data); return runAsync3("33333333"); }) .then(function (data) { console.log("end"); });