<body>
<div>
<h2>Promise初体验</h2>
<h2>点击按钮,30%概率中奖</h2>
<button id="btn">点击抽奖</button>
</div>
</body>
<script>
function rand(m, n) {
return Math.ceil(Math.random() * (n - m + 1)) + m - 1;
}
const btn = document.getElementById("btn");
btn.addEventListener("click", () => {
const p = new Promise((resolve, reject) => {
setTimeout(() => {
let n = rand(1, 100);
if (n <= 30) {
// 在调用 resolve 和 reject 的时候可以传参过去,then方法里面去获取这个参数
resolve(n);
} else {
reject(n);
}
}, 1000);
});
// 第一个回调函数获的参数是 resolve 传来的参数, 第二个回调函数获的参数是 reject 传来的参数
// value 值
// reason 理由
p.then(
(value) => {
alert("中奖了,你的号码是" + value);
},
(reason) => {
alert("再接再厉,你的号码是" + reason);
}
);
});
</script>
08-02
324
03-08
116
01-03
1774
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交