1,promise
es6 新语法 Promise语法:就是为了解决回调地狱问题
个人理解:
new Promise立即执行 当执行到resolve()或reject()方法时,执行then并携带参数
在then()中必须return返回一个new Promise()对象才可以执行下一次的then()方法
new Promise(function(resolve,reject){
var str = "";
setTimeout(function(){
str = str+"3";
resolve(str)
},3000)
}).then(function(str){
console.log("我成功获得了中奖第一个号码是:"+str);
return new Promise(function(resolve){
setTimeout(function(){
str = str+"5";
resolve(str)
},5000)
})
}).then(function(str){
console.log("我成功获得了中奖第二个号码是:"+str);
setTimeout(function(){
str = str+"6";
console.log("我成功获得了中奖第三个号码是:"+str);
},1000)
}).catch(function(){
console.log('失败了')
})
2,async/await
//es7 语法 async/await
async function fn(){
//async 这是一个异步函数
//await 后面是一个promise对象
//await 只能在async函数里面
//可以把异步写成同步代码
//第一个号码
var num1 = await new Promise(function(resolve){
var str = "";
setTimeout(function(){
str = str+"3";
resolve(str)
},3000)
});
console.log(num1)
var num2 = await new Promise(function(resolve){
setTimeout(function(){
resolve(num1+"7")
},2000)
});
console.log(num2)
var num3 = await new Promise(function(resolve){
setTimeout(function(){
resolve(num2+"9")
},2000)
})
console.log(num3)
}
fn();