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

2020-02-17  本文已影响0人  有情怀的程序猿

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)

上一篇 下一篇

猜你喜欢

热点阅读