日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Promise 学习心得

發布時間:2023/12/2 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Promise 学习心得 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  當了這么久碼農到今天沒事才開始去深究 Promise 這個對象

  • 什么是 Promise, Promise 有什么用?

  在寫代碼的時候多多少少都有遇見過地獄式的回調 代碼看起來沒問題就是有點亂,Promise 這個東西就是為了解決回調嵌套而生的?Promise 是異步編程的一種解決方案:從語法上講,promise是一個對象,從它可以獲取異步操作的消息;從本意上講,它是承諾,承諾它過一段時間會給你一個結果。promise有三種狀態:pending(等待態),fulfiled(成功態),rejected(失敗態);狀態一旦改變,就不會再變。創造promise實例后,它會立即執行。

  • 知道 promise? ,那應該怎樣用呢?

  舉個最簡單的例子利用 JQuery 返回一個 Promise 對象,實現 .then 對 ajax 進行調用

?

1 function getData(path,type='get',dataType='json'){ 2 return $.ajax({ 3 url:path, 4 type:type, 5 dataType:dataType 6 }) 7 }

 

   那如果我用不了 JQuery 怎么辦, 我們可以直接用原生 Promise 來實現

?

1 function getData(url) { 2 return new Promise(function (resolve, reject) { 3 var XHR =new XMLHttpRequest() ; 5 XHR.onreadystatechange = function () { 7 if (XHR.readyState == 4) { 8 if ((XHR.status >= 200 && XHR.status < 300) || XHR.status == 304) { 9 try { 11 var response = JSON.parse(XHR.responseText); 12 resolve(response); 13 } catch (e) { 14 reject(e); 15 } 16 } else { 17 reject(new Error("Request was unsuccessful: " + XHR.statusText)); 18 } 19 } 20 } 21 XHR.open('GET', url , true); 22 XHR.send(null); 23 }) 24 }

?

  • 最后我們來說一下 Promise 正常場景的兩種使用方法

    1.?回調后調用函數,第一個函數報錯后面的函數就可以不用執行。

?

1 getData('./data.json',).then((data)=>{ 2 console.log(data) 3 getData('./data1.json',) 4 }).then(data=>{ 5 console.log(data) 6 getData('./data2.json',) 7 }).then(data=>{ 8 console.log(data) 9 }).catch(err=>{ 10 console.log(err) 11 })

    

    2.?回調后調用函數,第一個函數錯誤后后面的函數還要繼續執行。

?

1 getData('./data.json',).then((data)=>{ 2 console.log(data) 3 getData('./data1.json',) 4 }).catch(err=>{ 5 console.log(err) 7 getData('./data1.json',) 8 }).then(data=>{ 9 console.log(data) 10 getData('./data2.json',) 11 }).then(data=>{ 12 console.log(data) 13 })

?

  總的來說 Promise 有什么用呢?代碼量沒減少,寫起來還復雜。 你可以這樣認為 Promise? 沒啥用就是讓你的代碼看起來不那么別扭,沒有了回調地獄讓你的代碼可讀寫更強,看起來心情更好,心情好代碼就打的快,代碼打的快就有時間去學習,有時間學習就可以跳槽,就加工資。簡單說 Promise 就是一個花瓶。中看!!

轉載于:https://www.cnblogs.com/ZhugeXican/p/11286100.html

總結

以上是生活随笔為你收集整理的Promise 学习心得的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。