我有一段回调的代码,三个确认框按顺序弹出(用的Ext框架,可以在这个页面执行http://extjs.cachefly.net/ext...)
Ext.MessageBox.confirm("confirm","是否继续1?", function(btn){
if(btn=='yes'){
doSomething1();
}
});
function doSomething1(){
console.log("do something1")
Ext.MessageBox.confirm("confirm","是否继续2?", function(btn){
if(btn=='yes'){
doSomething2();
}
});
}
function doSomething2(){
console.log("do something2")
Ext.MessageBox.confirm("confirm","是否继续3?", function(btn){
if(btn=='yes'){
doSomething3();
Ext.MessageBox.hide();
}
});
}
function doSomething3(){
console.log("do something3")
}
我将它改写成了Promise,但是想要进一步改写成async/await时,我不会做了
function p1(){
return new Promise((resolve, reject) => {
Ext.MessageBox.confirm("confirm","是否继续1?", function(btn){
if(btn=='yes'){
resolve()
}
});
})
}
function p2(){
return new Promise((resolve, reject) => {
Ext.MessageBox.confirm("confirm","是否继续2?", function(btn){
if(btn=='yes'){
resolve()
}
});
})
}
function p3(){
return new Promise((resolve, reject) => {
Ext.MessageBox.confirm("confirm","是否继续3?", function(btn){
if(btn=='yes'){
resolve()
}
});
})
}
p1().then(res=>{
console.log("do something1");
return p2();
}).then(res=>{
console.log("do something2");
return p3();
}).then(res=>{
console.log("do something3");
})