1、回調函數:https://blog.csdn.net/baidu_32262373/article/details/54969696
注意:回調函數不一定需要用到 return。如果瀏覽器支持Promise對象,則可以不用回調函數實現程序。(個人感覺,Promise實現,就像把回調函數難道了外面,通過l鏈式結構實現)
引申:同步程序封裝后,通過return返回值,就可以把需要的值給別人。異步程序封裝后,只能通過回調函數把值給別人。不然無法獲得預期的值
2、請求接口的管理:一般一個接口,可能會出現多個地方使用。如果把請求接口放在文件里,頁面中使用這個接口,只要傳入參數調用這個方法就可以了,及請求后的 執行的程序(即回調函數)。這樣可以便於管理所有的接口。
function getStausList(obj,Callback) { axios.get('./json/stausList.json').then( function(res){ Callback(res.data); // axios.js中的ajax請求返回的數據是放在 res.data 對象里面的,而不是res }, function(){ alert('連接失敗') } ) } getStausList(null,function(res){ // res 就是這個請求返回來的數據 // do sthing })
3、Promise的then里面的函數要用到then方法的,通過return 操作符 拋出去,就可以讓所有的then方法都是鏈式的寫法。這樣不管是從可讀性還是,邏輯清晰上都是好的。
abc().then( // abc是一個Promise對象( 如axios方法 ) (res) => { return rqubb() // rqubb 也是一個Promise對象 ( 如axios方法)
} ).then(
(res) => { // 這里res就是 rqubb 傳入的參數了
// do sthing
}
)
promise視頻學習筆記
1、
感悟:回調函數中里面 無法把里面值通過 return 返回出去,但是promise中的 resolve()可以把里面的值弄出來,傳遞到then的函數中。
回調函數之所以會出現回調地獄的問題,就是回調函數中值無法弄出來,只能不斷的嵌套使用。但是 promise + async/await 解決了這個問題,從此js沒有這個問題。
