回调函数

138 阅读1分钟

定义

把A函数当做参数传递到B函数内部;在B函数内部以形参的方式调用A函数;这种函数的点用方式,我们叫做回调函数(callback)

缺点

会调地狱;不停地在一个回调函数里面去进行第二个回调函数的操作;代码没有可读性和可维护性

解决方案

promise

状态:

持续(pending)、成功(resolved)、失败(rejected)

语法:

new Promise(function (resolve, reject) {
// TODO
}).then(function (res) {
console.log(res)
}).catch(function (err) {
console.log(err)
})
​
// Promise.all()
// 语法:Promise.all([ promise对象1, promise对象2, ...]).then(function() {})
// 缺点:必须全部成功,任何一个失败,那么最终一个结果也得不到

async / await

语法:

async function 函数名() {
let obj = await getName({
   return obj
})
}
​
​
函数名().then(res=>{
//得到函数的返回值 
})

目的:

  • 回调地狱的终极解决办法
  • 把异步代码写的看起来像同步代码