ES7 async / await
//async await 异步等待
async Initial() {
await this.testdata2();
this.testdata1();
}
testdata1() {
console.log("testdata1");
}
testdata2() {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log("testdata2");
resolve("resolved");
}, 2000);
});
}
// aSync 异步
Initial() {
this.testdata1();
this.testdata2();
}
testdata1() {
console.log("testdata1");
}
testdata2() {
setTimeout(() => {
console.log("testdata2");
}, 2000);
}
//ES6 Promise
function runAsync(){
var p=new Promise(function(resolve,reject){
setTimeout(function(){
console.log('run end');
resolve('param');
},2000);
console.log('BBB');
})
return p;
}
//链式调用
runAsync().then(function(data){
console.log(data);
})
function async1(){
return new Promise(function(resolve, reject) {
setTimeout(function() {//setTimeout模拟异步
console.log('async1 is done');
resolve('async1 value');
}, 6000);
});
}
function async2(){
return new Promise(function(resolve, reject) {
setTimeout(function() {//setTimeout模拟异步
console.log('async2 is done');
resolve('async2 value');
}, 3000);
});
}
function async3(){//async3不需要then,所以没写return new Promise
setTimeout(function() {
console.log('async3 is done');
}, 1000);
}
let p;
for(let i=0;i<4;i++){
p=async1().then(async2);
}
p.then(async3);
from; https://zhidao.baidu.com/question/1610861493377589947.html