js回调机制:内部调用外部的异步,如何改成内部的同步

2018-12-07  本文已影响0人  一个写前端的姑娘

描述现象

callOuterFun() {
  let _resolve, _reject
  let readyPromise = new Promise((resolve, reject) => {
    _resolve = resolve
    _reject = reject
  })
  // callbackFunction函数
  let callbackFunction = function(res) {
    if (res.success) {
       _resolve(res)
    } else {
      _reject('error')
    }
  }
  // 超时机制  5秒超时
  let timeout = new Promise((resolve, reject) => {
    setTimeout(function() {
      reject('timeout')
    }, 5000)
  })
  Bridge({callback: 'callbackFunction'})
  return Promise.race([timeout, readyPromise])
}
// 在vue中调用此函数
other.callOuterFun().then(res => {
  // 如果callbackFunction执行成功,走这边
}).catch(err => {
  // callbackFunction执行失败,或者超时,走这边
})

完美将异步改成了同步,赞!!!

感谢您的view,from一个写前端的姑娘

上一篇 下一篇

猜你喜欢

热点阅读