判断是否为promise,报错then为undefined

就是想判断一个函数是否为 promise

通过判断是否含有 then 方法,但是这个函数如果不是 promise 的话,会先报错 undefined

if(fn.then){
//如果是promise
}else{
}

如果这个函数,不是 promise,那么会在 else 逻辑之前先报错,then 是 undefined

阅读 15.4k
3 个回答

解决了,谢谢大家

方法是

if (!!fn && typeof fn.then === 'function') 
   if(fn instanceof Promise){
       //Promise
   }

错误信息是fn是undefined还是fn.then是undefined?如果不是promise,fn.then当然等于undefined。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题