什么是PromiseLike

503 阅读1分钟

今日份的面试题

写一个函数判断其是不是PromiseLike

解:首先要知道什么样子的对象才像一个Promise,这个问题就需要看一下Promise A+规范了里面明确表明了什么是Promise(Promises/A+),也就是说我们现在使用的Promise就是基于Promise规范实现的。

image.png

1.Promise是一个对象或者是一个函数\color{#f4dd59}{ 1.Promise是一个对象或者是一个函数}
2.同时带了一个then方法\color{red}{2.同时带了一个then方法}

function isPromiseLike(value){
  // 1.Promise是一个对象或者是一个函数
  // 同时带了一个then方法
   value!==null&&(typeof value ==='object' ||typeof value==='function')
   &&(typeof value.then==='function')
}