promise执行多个ajax的请求
写在前面:作为入门级菜鸟,当项目切了环境用上node,vue,es6的时候,发现要学习理解的东西还有太多,之前连Promise是个啥都不知道。
翻了翻书上说 Promise是抽象异步处理对象以及对其进行各种操作的组件,略抽象看不懂是不是啊~于是请教了大神
简单说就是:每一个异步请求立刻返回一个Promise对象,由于是立刻返回,所以可以采用同步操作的流程。而Promise的then方法,允许指定回调函数,在异步任务完成后调用。
下面的setTimeout()可以代替理解为一个ajax请求:
function a () {
return new Promise (function(resolve, reject) {
setTimeout(function () {
console.log('执行任务a');
resolve('执行任务a成功');
}, 1000);
});
}
function b () {
return new Promise(function (resolve, reject){
setTimeout(function(){
console.log('执行任务b');
resolve('执行任务b成功');
}, 2000);
});
}
function c () {
console.log('最后执行c')
}
// 只有在a成功执行了之后,才执行b,在b成功执行了之后再执行C(谁先请求执行谁~)
a().then(b()).then(c());