promise是用来解决Js中的异步问题的。基本结构如下:
function a() {
return new Promise((resolve, reject) => {
//dosomething
resolve()
}
}
前提是要通过新建一个Promise的对象,然后传参一个函数(resolve,reject)=>{resolve()}第一个参数是resolve的回调处理函数,第二个是reject函数,具体Demo如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
</head>
<body></body>
<script>
/**
*先定义函数a b c
*/
var bool = true; //改变bool 走promise不同位置
function a() {
return new Promise((resolve, reject) => {
$("#dblAddExaminers").load(location.href + " #dblAddExaminers");
if (bool) {
resolve(bool);
} else {
reject(bool);
}
});
}
function b(e) {
var check1 = document.getElementsByTagName('INPUT');
for (i = 0; i < check1.length; i++) {
if (check1[i].checked==true) {
check1[i].checked = false;
}
}
}
function c(e) {
console.log("执行c 这里是a函数reject出来 用来抓报错", e);
}
window.onload = function () {
this.a()
.then(res => {
this.b(res);
})
.catch(res => {
this.c(res);
});
};
</script>
</html>
执行结果
如果把bool的值改为true,则执行结果为