js--回调函数

今天碰到一个问题,如何获取一个函数异步操作的结果?(setTimeout,readFile,writeFile,ajax)
答:用回调函数。
看下面这个例子:

function add(x,y,callback) {
    console.log(1)
    setTimeout(function () {
    //如何拿到这个ret
        var ret = x + y
           })
    console.log(3)
}

用回调函数来取data的值

function add(x,y,callback) {
    console.log(1)
    setTimeout(function () {
        var ret = x + y
        callback(ret)
    })
    console.log(3)
}

add(12,12,function (data) {
     console.log(data)
})

此时,function add (callback) 中的 callback 等于 function (data) {
console.log(data)
} ,在执行定时器时,会在函数内部调用这个回调函数,拿到data的值。

callback(err,data)

第一个参数
成功是null 失败是错误对象
第二个参数
成功是data 失败是undefined

猜你喜欢

转载自blog.csdn.net/qj6837/article/details/84778039
今日推荐