Author:Mr.柳上原
- 付出不亚于任何的努力
- 愿我们所有的努力,都不会被生活辜负
- 不忘初心,方得始终
总是鼓励别人乐观
自己却有些悲观
。。。。。。
<!DOCTYPE html> <!-- 文档类型:标准html文档 -->
<html lang='en'> <!-- html根标签 翻译文字:英文 -->
<head> <!-- 网页头部 -->
<meat charset='UTF-8'/> <!-- 网页字符编码 -->
<meat name='Keywords' content='关键词1,关键词2'/>
<meat name='Description' content='网站说明'/>
<meat name='Author' content='作者'/>
<title>前端59期学员作业</title> <!-- 网页标题 -->
<link rel='stylesheet' type='text/css' href='css/css1.css'/> <!-- 外链样式表 -->
<style type='text/css'> /*内部样式表*/
</style>
</head>
<body> <!-- 网页主干:可视化区域 -->
<script>
/*
promise:承诺,用于解决异步编程
状态:进行中,成功,失败
全封闭模式:一旦启动了一个promise,外部再也无法改变它内部的状态
关注点:成功(resolve),失败(reject)
当程序有大量计算时,会消耗大量系统资源,所以会使用异步编程的方式(回调函数)来组织代码
event.addListener("end", function(res){} );
*/
new Promise((resolve, reject) => {
setTimeout(() => {
try {
console.log(123); // 事件结束
resolve(`成功:${123}`);
} catch (error){
reject(`失败:${error}`);
}
}, 200)
// then是Promise原型上的方法,会返回一个全新的promise方法,下一个then接受成功还是失败事件,取决于上一个then的return的值是成功还是失败
}).then((res) => { // 成功回调
if (res){
setTimeout(() => {
console.log(res);
}, 200)
}
return res; // 返回数据给下一个then
}, (rej) => { // 失败回调
console.log(rej);
}).then((res) => {
console.log(res);
return new Promise((resolve, reject) => reject("失败");
}).catch(error => { // catch专门用来接受promise的失败状态
console.log(error);
})
let p1 = new Promise(() => {});
let p2 = new Promise(() => {});
let p3 = new Promise(() => {});
// all方法
let p = Promise.all([p1, p2, p3]) // 当所有集合里p都成功时才成功
// race方法
let p = Promise.race([p1, p2, p3]) // 当最先得出值的集合里p的状态就是p的状态
// reject方法
let p = Promise.reject("失败") // 立即返回失败的状态
// resolve方法
let p = Promise.resolve("成功") // 立即返回成功的状态
/*
async:generator函数的语法糖
语法糖:给计算机语言添加新功能,对开发者更加亲切甜蜜易读的语法
*/
// async使用方法
async function fn( ){
let res = await new Promise((resolve) => {
setTimeout(() => {
console.log("异步成功");
resolve("返回成功值")
}, 100)
})
console.log(res);
}
fn( );
</script>
</body>
</html>
网友评论