代码拉取完成,页面将自动刷新
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>promise</title>
</head>
<body>
<button onclick="testPromise()">测试链式调用</button>
<script>
const a = Math.random()
const b = Math.random()
new Promise(function(resolve, reject) {
if (a > b) {
//此时认为成功
resolve("我成功了")
} else {
//否则失败
reject("我失败了")
}
})
.then((result) => {
//这里获取的是成功的结果
console.log(result)
})
.catch((error) => {
//这里获取的是失败的结构
console.log(error);
})
</script>
<script>
function testAxios() {
axios({
url: "",
})
.then((result) => {
//发起第二次请求
return axios({
url: "2",
params: result
})
})
.then((result) => {
//此时的result结果是 上次的promise执行的结果
return axios({
url: "3",
params: result,
})
})
.then((result) => {
//此时的result结果是 上次的promise执行的结果
return axios({
url: "4",
params: result,
})
})
.then((result) => {
return axios({
url: "5",
params: result,
})
})
}
//promise 最大的作用是 将回调地狱的写法变成链式调用
</script>
<script>
function testPromise() {
new Promise(function(resolve, reject) {
//想要3秒钟之后成功执行 得到一个15000的结果
setInterval(() => {
resolve(15000) //起薪
},
3000)
})
.then((result) => {
// alert(result)
// //返回的是一个值或者是一个promise对象
// return new Promise()
return result + 1000
})
.then((result) => {
return result + 1000
})
.then((result) => {
return result + 1000
})
.then((result) => {
return new Promise(function(resolve, reject) {
resolve(result + 2000)
})
})
.then((result) => {
//只有等到上一个结果执行完毕
//在这个位置获取上一个的结果
alert(result)
})
.catch((error) => {
alert(error)
})
}
</script>
</body>
</html>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。