Skip to content

回调函数

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
    }
);