js回调函数这一块一直是一个不太好理解的地方,相信很多同学都不知道该如何使用,今天我做项目的时候正好有一个地方要用到回调函数,有感而发。
应用场景
需求:我想封装一个ajax调用api的函数,在其他页面可以方便调用,但是调用的时候接收不到函数的返回值,因为函数的返回值在ajax 的 success回调当中,此时就需要一个回调函数了!
先看下我的ajax函数代码如下:
post_func(url, data,cellback) {
var _this = this
var token = localStorage.getItem('token')
var username = localStorage.getItem('user')
$.ajax({
type: "POST",
url: this.res_url + url,
data: data,
async: true,
headers: {
"token": token,
"username": username
},
success: function (res) {
cellback(res)
},
error: function () {
alert("网络错误")
}
})
}
函数很简单,接收参数有三个 url是请求地址,data是请求参数,cellback是回调函数
如何调用
调用时前两个参数正常传就行,最后一个参数要传递一个函数,如下
post_func("/api/v1/admin/add_menu", data, function(data) {
console.log(data)
})
console.log(data)打印的是ajax success的回调数据
成功!真香