1、回调函数:https://blog.csdn.net/baidu_32262373/article/details/54969696
注意:回调函数不一定需要用到 return。如果浏览器支持Promise对象,则可以不用回调函数实现程序。(个人感觉,Promise实现,就像把回调函数难道了外面,通过l链式结构实现)
引申:同步程序封装后,通过return返回值,就可以把需要的值给别人。异步程序封装后,只能通过回调函数把值给别人。不然无法获得预期的值
2、封装API接口:一般一个接口,可能会出现多个地方使用。如果把API封装在一个函数里,那么后面使用这个API,只要考虑传入的参数,已经请求成功后 执行的程序(即回调函数)。
我们把所以的API请求,都放在一个js文件里封装好,这样可以便于管理API接口的代码。
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解决了这个问题。