promise

//pending 进行中
//Resolved 已完成
//Rejected 失败
//promise 代表一个异步操作
// window.onload = function(){
// //Pormise 构造函数接受一个函数作为参数,函数里两个参数分别为resolve, reject方法
// //如果异步操作成功,则用resolve 将promise状态从【未完成】变为【成功】
// //....失败, reject 【为完成】变为【失败】

// function Async(){
// setTimeout(function(){
// console.log('异步操作执行完成');
// },2000);
// }

// var promise = new Promise(function(resolve, reject){
// Async();
// });

// promise.then(function(value){
// //success
// }, function(){
// //failure
// })

// }


function AsyncFn(){
var p = new Promise(function(resolve, reject){
setTimeout(function(){
console.log('异步操作成功');
resolve('测试');
},2000)
})

return p;
}

function AsyncFn1(){
var p = new Promise(function(resolve, reject){
setTimeout(function(){
console.log('异步操作成功1');
resolve('测试1');
},2000)
})

return p;
}

function AsyncFn2(){
var p = new Promise(function(resolve, reject){
setTimeout(function(){
console.log('异步操作成功2');
resolve('测试2');
},2000)
})

return p;
}

AsyncFn().then(function(data){
console.log(data);
return AsyncFn1();
}).then(function(data){
console.log(data);
return AsyncFn2();
}).then(function(data){
console.log(data)
})

// Promise.all([AsyncFn(), AsyncFn1(), AsyncFn2()]).then(function(results){
// console.log(results);
// })

原文地址:https://www.cnblogs.com/winyh/p/6900213.html