回调函数
shell
# 回调函数
把一个函数当作参数,传给另一个函数,在未来某个时机被 “回头调用”
# 优缺点
优点:简单直接,兼容性好
缺点:嵌套异步容易造成回调地狱,错误处理困难单回调
js
function getData(url, callback) {
setTimeout(() => {
const data = [url, 2, 3];
callback callback(data);
}, 1000);
}
getData('xxx.json', (res) => {
console.log(res);
});多回调
js
function getData(url, successCallback, failCallback) {
setTimeout(() => {
const data = [url, 2, 3];
if (url) {
successCallback && successCallback(data);
} else {
failCallback && failCallback('no url');
}
}, 1000);
}
getData(
'xxx.json',
(res) => {
console.log(res); // ['xxx.json', 2, 3]
},
(err) => {
console.log(err);
}
);
getData(
'',
(res) => {
console.log(res);
},
(err) => {
console.log(err); // no url
}
);