Promise - 06 Promise 相对与纯回调函数的优势

Promise 相对与纯回调函数的优势

  • 制定调用函数的方式更灵活
    • 纯函数必须在启动异步任务前制定回调函数
    • promise 绑定回调函数就很灵活, 启动异步任务前 / 甚至可以在异步函数之后绑定回调函数也是可以拿到返回数据
  • 支持链式调用, 可以解决回调地狱问题
纯回调函数
// 启动异步操作, 必须连带 成功回调和失败回调一起传入
createAudioFile (config,successCallback, failureCallback)
Promise 甚至可以在异步结束后再去拿结果都可以
const p = new Promise((resolve, reject) => {  // 执行器函数
// 这里会执行异步操作

 setTimeout(() => {
    const time = Date.now() // 如果时间等于基数表示失败,偶数表示成功
    // 如果成功了, 调用resolve(v)
    if (time %2 === 0) {
      resolve('成功数据' + time) // 括号中可以传任何数据(字符串、数组、对象,甚至是错误)
    }else { // 如果失败了, 调用reject(r)
      reject('失败数据' + time) // 括号中可以传任何数据(字符串、数组、对象,甚至是错误)
  }

  },1000)
})

// Promise 发起异步一秒就结束了, 但是我们这里在结束后2秒再去拿结果也是可以拿到的
setTimeout({
  p.then(
     onResolved =>  {
      console.log(onResolved)
    },
    onRejected=>{
      console.log(onRejected)
    }
  )
},3000)

你可能感兴趣的:(Promise - 06 Promise 相对与纯回调函数的优势)