Author:Mr.柳上原
- 付出不亞于任何的努力
- 愿我們所有的努力刨摩,都不會被生活辜負
- 不忘初心寺晌,方得始終
總是鼓勵別人樂觀
自己卻有些悲觀
。澡刹。呻征。。罢浇。陆赋。
<!DOCTYPE html> <!-- 文檔類型:標準html文檔 -->
<html lang='en'> <!-- html根標簽 翻譯文字:英文 -->
<head> <!-- 網頁頭部 -->
<meta charset='UTF-8'/> <!-- 網頁字符編碼 -->
<meta name='Keywords' content='關鍵詞1,關鍵詞2'/>
<meta name='Description' content='網站說明'/>
<meta name='Author' content='作者'/>
<title>前端59期學員作業(yè)</title> <!-- 網頁標題 -->
<link rel='stylesheet' type='text/css' href='css/css1.css'/> <!-- 外鏈樣式表 -->
<style type='text/css'> /*內部樣式表*/
</style>
</head>
<body> <!-- 網頁主干:可視化區(qū)域 -->
<script>
/*
try catch:
錯誤捕獲
try語句允許我們定義在執(zhí)行時進行錯誤測試的代碼塊
catch 語句允許我們定義當 try 代碼塊發(fā)生錯誤時,所執(zhí)行的代碼塊
finally 語句在 try 和 catch 之后無論有無異常都會執(zhí)行
catch 和 finally 語句都是可選的
catch 塊會捕捉到 try 塊中的錯誤嚷闭,并執(zhí)行代碼來處理它
throw語句拋出一個錯誤
*/
// try catch的使用
function myFunction() {
let x;
try {
if(a == "") throw "is Empty";
if(isNaN(x)) throw "not a number";
if(x > 10) throw "too high";
if(x < 5) throw "too low";
} catch(err) {
console.log(err);
}
}
/*
promise:承諾攒岛,用于解決異步編程
狀態(tài):進行中,成功胞锰,失敗
全封閉模式:一旦啟動了一個promise灾锯,外部再也無法改變它內部的狀態(tài)
關注點:成功(resolve),失斝衢拧(reject)
當程序有大量計算時顺饮,會消耗大量系統(tǒng)資源,所以會使用異步編程的方式(回調函數(shù))來組織代碼
event.addListener("end", function(res){} );
*/
// promise的使用
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; // 返回數(shù)據(jù)給下一個then
}, (rej) => { // 失敗回調
console.log(rej);
}).then((res) => {
console.log(res);
return new Promise((resolve, reject) => reject("失敗");
}).catch(error => { // catch專門用來接受promise的失敗狀態(tài)
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的狀態(tài)就是p的狀態(tài)
// reject方法
let p = Promise.reject("失敗") // 立即返回失敗的狀態(tài)
// resolve方法
let p = Promise.resolve("成功") // 立即返回成功的狀態(tài)
/*
async:generator函數(shù)的語法糖
語法糖:給計算機語言添加新功能君旦,對開發(fā)者更加親切甜蜜易讀的語法
*/
// async使用方法
async function fn( ){
let res = await new Promise((resolve) => {
setTimeout(() => {
console.log("異步成功");
resolve("返回成功值")
}, 100)
})
console.log(res);
}
fn( );
</script>
</body>
</html>