异步同步执行
function getSomething() {//js代码
var a = 0;
return new Promise(function(resolve) {
function() {//假如这个方法是一个异步执行
r = 2;
resolve(r);
}
});
}
async function compute() {
var x = await getSomething();
alert(x * 2);
}
promise是什么?
1、主要用于异步计算
2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果
3、可以在对象之间传递和操作promise,帮助我们处理队列
/* prmoise链式写法 */
//prmoise链式写法 调用
this.GetSafeTaskStateNum().then(res=>{
console.log("aaa",res)
return res
}).then((res2)=>{
console.log("aaa222",res2)
this.GetSafeUnitTaskList(res2);
})
/*
GetSafeTaskStateNum(){
return new Promise((resolve,reject)=>{
this.$axios.get(this.$api.GetSafeTaskStateNum,{params:this.page}).then(res=>{
console.log("我要讓裝藥状态先获取到",res);
// this.screenBtns[0].num = res.result[0].value
// this.screenBtns[1].num = res.result[1].value
resolve(res)
})
})
},
GetSafeUnitTaskList(res2){
this.$axios.get(this.$api.GetSafeUnitTaskList,{params:this.page}).then(res=>{
console.log("等状态完成了才能执行",res2);
({items: this.tableData,totalCount: this.page.total} = res.result);
})
},
*/
/* Async操作 */
//Async操作调用
// this.GetSafeUnitTaskList();
/* GetSafeTaskStateNum(){
return Promise.resolve(
this.$axios.get(this.$api.GetSafeTaskStateNum,{params:this.page}).then(res=>{
console.log("我要讓裝藥状态先获取到",res);
return res
})
)
},
async GetSafeUnitTaskList(){
const v1 = await this.GetSafeTaskStateNum();
console.log("等状态完成了才能执行v1",v1);
this.$axios.get(this.$api.GetSafeUnitTaskList,{params:this.page}).then(res=>{
({items: this.tableData,totalCount: this.page.total} = res.result);
})
}, */
详细:
promise和async await区别在哪?到底怎么用?
理解 JavaScript 的 async/await
ES6关于Promise的用法
Promise和Async/Await用法整理
Async视频讲解
async,await视频讲解
关于async/await、promise和setTimeout执行顺序