当前位置: 首页 > news >正文

企业网站效果图十大品牌营销策划公司

企业网站效果图,十大品牌营销策划公司,wordpress php speedy,外贸推广优化公司在学习promise时,我们经常会遇到thenable一词。关于thenable,目前的资料解读不够通俗易懂,又或者脉络不够清晰,本文主要对thenable进行详细剖析,以便各位参考。笔者希望你能够仅凭这一篇文章,便能深度掌握该…

在学习promise时,我们经常会遇到thenable一词。关于thenable,目前的资料解读不够通俗易懂,又或者脉络不够清晰,本文主要对thenable进行详细剖析,以便各位参考。笔者希望你能够仅凭这一篇文章,便能深度掌握该知识点。

thenable是什么

thenable 是指任何拥有then(..)方法的对象或函数。

如下:

var o = { then: function(){} }; // o是thenable对象var f = function(){};
f.then = function(){}; // f是thenable函数

关于对象,我们比较容易理解。这里单独提到拥有thenable方法的函数,原因何在呢?

原因在于判断是不是thenable时,一般使用typeof检测即可,typeof本身对于引用类型的检测除了函数都会返回"object",但我们不能排除函数。这个定义实际上与typeof类型检测相对应的。

thenable解决什么问题

主要是兼容历史性实现。

在 Promise 成为 JavaScript 语言的一部分之前,JavaScript 生态系统已经有了多种 Promise 实现。尽管它们在内部的表示方式不同,但至少所有类 Promise 的对象都实现了 Thenable 接口。这就使得同化一个非纯种但相似Promise的值是必要的,否则会导致其他实现不可用。

如何判断thenable

根据上面的定义,thenable的鸭子类型检查应从两方面着手:

其一:应是对象或者函数;

其二:应具有then方法。

综上,可用如下代码进行检查:

if (p !== null &&(typeof p === "object" ||typeof p === "function") &&typeof p.then === "function"
) {// 认为它是一个thenable!
}
else {// 不是一个thenable
}

如何区分thenable对象和promise对象

Promise 本身也是 thenable 对象,那么如何区分真正的promise对象呢?

显然,真正的promise对象是ES6 Promise构造函数的实例,而一般thenable对象则不是,故可用instanceof 判断,如下:

function isES6promise( p ) {  return p instanceof Promise;
}

Promise.resolve如何解析thenable对象

Promise.resolve(value) 的 value 是个 thenable 对象时,返回的promise会“跟随”这个thenable的对象,采用它的最终状态。如下:

const aThenable = {then(onFulfilled, onRejected) {onFulfilled({// thenable 对象被兑现为另一个 thenable 对象then(onFulfilled, onRejected) {onFulfilled(42);},});},
};Promise.resolve(aThenable); // 一个兑现值为 42 的 Promise

以上代码实际上是两层thenable对象:

其一,aThenable是一个thenable对象;

其二:aThenable的then方法中, onFulfilled的参数是一个thenable对象。

即,可以对以上代码进行如下变形:

const aThenable = {then:function (onFulfilled, onRejected) {onFulfilled({// thenable 对象被兑现为另一个 thenable 对象then:function(onFulfilled, onRejected) {onFulfilled(42);},});},
};Promise.resolve(aThenable); // 一个兑现值为 42 的 Promise

每一次调用onFulfilled解析thenable对象时,都是将thenable对象的then函数的onFulfilled的值向外传递。

http://www.mmbaike.com/news/39900.html

相关文章:

  • 西安政府网站建设公司推广方案范例
  • seo网站推广的主要目的包括google国际版
  • 网络做网站seo培训学院
  • 石家庄新闻综合频道节目表seo优化网络公司
  • wordpress添加登陆搜索引擎优化概述
  • 传媒公司做网站条件今天刚刚的最新新闻
  • html做网站项目案例自媒体平台注册官网
  • 沈阳做网站直播的公司seo需要付费吗
  • 网站怎么做移动端适配2345王牌浏览器
  • 培训机构排名百度小程序优化排名
  • 开发网站现实网络传输失败独立网站怎么做
  • 广州近期流行的传染病seo实战培训机构
  • 企业网站与网络营销广告电话
  • wordpress上传插件网站seo推广方案
  • 学校电商平台的创建武汉网站seo服务
  • 微信小程序怎么做网站178软文网
  • 做国际网站的流程广告宣传语
  • 望城城乡建设委员会网站青岛seo网络优化公司
  • markdown做网站编辑器在哪里推广比较好
  • wordpress 前台 插件淮安网站seo
  • 四川招标信息网官网seo怎么做优化方案
  • l临沂建设工程信息网站济南最新消息
  • 江苏网站建设效果下载百度2023最新版
  • 做的好的音乐网站的特点营销方法有哪些
  • 沧州网站制作现在推广什么app最挣钱
  • 百度seo网站在线诊断如何做好口碑营销
  • b2b能给网站做优化吗成人营销管理培训班
  • phthon网站开发推广方案万能模板
  • 网站建设公司有哪些万网域名注册信息查询
  • 怎样在微信里做网站郑州seo服务