js异步变同步(利用await、async关键字)
使用 异步方法
会将逻辑代码嵌套到成功回调内,维护不太方便,尤其是需要多次回调嵌套时
例子:使用ajax 异步请求后台,然后成功后再请求某个后台(只是举例 现在基本都用fetch/axios
了)
/* 第一次请求 */
$.ajax({
url: url,
data: data,
success: function(){
//逻辑代码
/* 第二次请求 */
$.ajax({
url: url,
data: data,
success: function(){
//逻辑代码
//#code...
}});
}});
简单封装下
async function ajax(obj){
return Primise((resolve, reject) => {
$.ajax({
url: obj.url,
data: obj.data,
success: function(res){
resolve(res)
},
error:function(err){
reject(err)
}
});
})
}
/*调用方式*/
let result = await ajax({url:url,data:data});
//逻辑代码
#code
uniapp的例子 小程序端没有h5端的confirm,多个showModal不会阻塞 多个showModal 后面的不会执行 这个时候可以用到async阻塞程序 很方便
/*
* @return bool 用户选择的结果
* 异步等待结果
*/
async function asyncConfirm(content = '') {
return new Promise((resolve, reject) => {
uni.showModal({
title: '提示',
content: content,
success: (res) => {
resolve(res.confirm)
}
})
})
}
await asyncConfirm(content)
文档更新时间: 2020-11-17 16:44 作者:叶洪