Promise 是如何构建的?

2023-12-09

我想查看 JavaScript Promise 的源代码。我尝试过toSource()但它仍然只是显示ƒ Promise() { [native code] }。有什么办法可以看到本机代码吗?


Promise 内置于 V8 Javascript 解释器中,并部分在解释器内部的本机代码中实现。所有 Node.js 代码(包括 V8 JS 引擎)均可在 Github 上获取:https://github.com/nodejs/nodeV8 Promise 实现的一个很好的部分是在该存储库中.

内置代码并不容易阅读。如果您想要一个纯 Javascript 实现示例来学习,那么任何完全用 Javascript 编写的 Promise 实现可能更容易学习。例如,Bluebird Promise 库在这里:https://github.com/petkaantonov/bluebird一个承诺的polyfill在这里:https://github.com/taylorhakes/promise-polyfill.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Promise 是如何构建的? 的相关文章

  • 使用 npm 作为构建工具连接文件

    我最近发现我可以使用 npm 作为任务运行程序 而不是 gulp 或 grunt 到目前为止 一切都很棒 lint stylus jade uglify watch 等 但串联部分 我似乎无法实现 gulp 是这样的 gulp task s
  • 无法填充名为“status”的数组

    我正在尝试做一些非常简单的事情 在 Javascript 中初始化一个数组 而且它在 Google Chrome 中不起作用 这是代码 status for i 0 i lt 8 i status i false alert status
  • Webpack 缺少 CommonsChunk 和 extract-text-webpack-plugin 模块

    我正在跟进Maxime Fabre 的 Webpack 教程 https blog madewithlove be post webpack your bags 我正在尝试获得一个非常简单的 webpack 包 其中包含 1 个入口点和 2
  • 在 Javascript 中本地化字符串

    我目前正在使用 resx文件来管理我的 NET 服务器端资源 我正在处理的应用程序还允许开发人员将 JavaScript 插入各种事件处理程序中以进行客户端验证等 对我来说本地化 JavaScript 消息和字符串的最佳方法是什么 理想情况
  • 如果浏览器在 asp .net 中关闭,请从浏览器中注销?

    我的要求有点复杂 用户正在使用 Web 浏览器访问数据库 而在访问数据库时 如果用户关闭活动页面而不是注销会话 该会话需要自动注销 有人可以指导我如何做这个吗 我在母版页中使用了jquery onbeforeunload 我收到消息离开页面
  • 获取请求的客户端 IP 地址而不是 Cloudflare 的 IP 地址

    Cloudflare 会更改传入请求的 IP 地址 因为 Cloudflare 是我的网站和互联网之间的中间件 代理 我该怎么办获取请求的初始IP地址 而不是 Cloudflare 的 IP 地址 我听说过mod cloudflare但是这
  • 将数组转换为具有默认值的对象的更简洁方法? (洛达什可用)

    我有一个数组 比如说 a b c 我想将其转换为一个对象 该对象以数组值作为键和我可以设置的默认值 所以如果默认值是true 我希望我的输出是 a true b true c true 下面的代码是否有更简洁的版本来实现此目的 var my
  • 如何为 HTML5 音频元素制作加载栏?

    我正在尝试为 HTML5 音频元素制作一个加载栏 显示加载 缓冲的百分比 对于视频标签 可以使用以下方法进行计算 video buffered end 0 video duration 但我无法让它与音频标签一起使用 它只是返回一个固定值
  • jQuery 验证日期范围问题

    我的代码中有很多地方有成对的相关开始和结束日期字段 范围 我需要验证开始日期早于结束日期 我正在使用 jQuery 验证插件 这是我的代码 http jsfiddle net jinglesthula dESz2 http jsfiddle
  • React/Redux bundle.js 太大

    我有一个小型的 React 项目 Webpack生成的bundle js大小为6 3Mb 如何将大小减小到 github webpack config js module exports devtool inline source map
  • Nodemailer:从未收到问候语

    当尝试使用 Nodemailer 在 Node 内发送电子邮件时 https github com nodemailer nodemailer https github com nodemailer nodemailer 调用sendMai
  • 光滑的旋转木马不工作

    我一直在尝试简单地实现 Slick Carousel 的工作 我已按照 Git 页面上的说明进行操作 https github com kenwheeler slick https github com kenwheeler slick 这
  • 单击输入字段会触发窗口调整大小

    我有一个带有徽标 菜单和搜索的标题 当我在桌面上时 我会按该顺序显示所有元素 但如果我的窗口宽度小于 980 像素 菜单会隐藏 有一个切换按钮 并且徽标会与nav并附在徽标之后 如果宽度更大 则徽标将再次分离并附加到 DOM 中的旧位置 w
  • JavaScript:从 JavaScript 调用锚标记的点击事件

    我有一个带有锚标记的页面 在我的 JavaScript 中 我设置HREF锚标记的属性基于一些 if else 条件动态变化 现在我想以编程方式调用锚标记的单击事件 我使用了下面的代码 但没有成功 var proxyImgSrc CostM
  • EJS在JS onload函数中访问express变量

    我知道你可以像这样获取 ejs 文件中变量的值 h1 h1 如果我要在同一个 ejs 页面的 onload javascript 函数中使用相同的标题变量 我将如何使用它 例如 这个函数产生一个控制台错误说 未捕获的语法错误 意外的标识符
  • 由于固定导航,增加了 FancyBox v2 的顶部和底部边距

    我目前正在开发一个网站 该网站将来将具有响应能力 该网站主要由图像组成 单击这些图像会加载到 FancyBox 中 FancyBox v2 现在具有响应能力 因此可以在屏幕尺寸发生变化时重新调整图像等的大小 作为我设计的一部分 我有两个固定
  • 显示班级图片 10 秒

    我有下面给出的代码显示9 boxes 其值如下digital time 还有一个班级box002显示digits相当于随机选择的九个盒子的值 box002 can be dragged to digital time starting wi
  • 如何使用 Jest 测试对象键和值的相等性?

    我有一个mapModule我在其中导入组件并导出它们 import ComponentName from components ComponentName export default name ComponentName 我该如何测试ma
  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试
  • 如何设置 Firebase 用户的显示名称?

    根据Firebase网站上的JS Auth文档 它只展示了如何获取 displayName 以及如何更新 displayName 所以我尝试更新它 但这有点不合逻辑 因为你怎么能在不创建某些东西的情况下更新它呢 所以我的问题是 如何设置注册

随机推荐

  • 获取有关 Swift 中进程的信息

    我正在尝试获取有关 Swift 中流程的一些数据 我使用这段代码作为起点 pid t pid 10000 rusage info current rusage if proc pid rusage pid RUSAGE INFO CURRE
  • Angular 没有给出复选框的当前状态

    我已经开始构建一个 ToDo 示例应用程序 我面临一个奇怪的问题 下面是待办事项列表的 HTML 代码 在该列表中 我为复选框设置 ngModel 并触发更改事件 监听变化的代码 我只将当前状态打印到控制台 看下图 您可以看到复选框的当前状
  • Linux 上的 pthreads 是如何被调度程序看到的

    我有一个关于 Linux 上 pthread 实现的问题 假设一个进程有5个线程 现在调度程序如何看到这些线程 或根本看不到 例如当调度程序被调用时 它是否只调度主进程 然后主进程有责任在每个线程之间进行调度 或者是另一种方式 调度程序调度
  • 为什么必须限定重载模板基类方法的范围?

    我似乎无法在不将范围限定到基类的情况下调用基类的方法 这似乎是因为我重载了该方法 如果我不重载该方法 那么编译器不会抱怨 这是我想做的一个例子 struct BaseClass template
  • 是否可以在 go 插件和应用程序之间共享自定义数据类型?

    我知道可以查找导出的 go plugin 符号并将它们键入到界面 但是 我想知道是否有一种方法可以将它们键入到结构中 例如 有办法做到吗 例如 插件 go package main type Person struct Name strin
  • 如何检查Android设备是HDPI屏幕还是MDPI屏幕?

    我想检查这个以通过互联网获取不同的图像 怎么做 density getResources getDisplayMetrics density return 0 75 if it s LDPI return 1 0 if it s MDPI
  • 在android中将文件写入sdcard

    我想在 SD 卡上创建一个文件 在这里我可以创建文件并将其读 写到应用程序中 但我想要的是 文件应该保存在 SD 卡的特定文件夹中 我怎样才能做到这一点使用FileOutputStream create file public void c
  • UITableViewCell 子类布局在禁用自动布局的故事板中混乱

    我在故事板中创建了一个带有原型单元的表格视图 并且在 Xcode 5 中未选中 使用自动布局 cells是UITableViewCell的子类 主要是添加IBOutlets 里面没有任何代码 结果是布局混乱 我尝试更改自动调整大小蒙版 但没
  • 证书签名请求中手动创建的签名与 openssl req 生成的签名不匹配

    使用以下命令创建证书签名请求 openssl genrsa out test key 2048 openssl req new key test key subj CN foo out foo csr 在提供的步骤的帮助下 marc我从中提
  • 从 HTML PHP 联系表单中删除错误字符

    PHP 新手 但取得新进展 我有一个联系表单 在用户提交后会发送电子邮件 现在我想通过删除坏字符或任何可能破坏电子邮件的内容来改进此表单 该电子邮件将由我阅读 因此从技术上讲我可以浏览所有垃圾邮件 但我不想这样做 我想要一封干净的电子邮件用
  • PHP OOP:每个参数类型都有唯一的方法?

    我正在写一些自制的 ORM 学术兴趣 我试图将 TDD 概念作为一项培训练习 并且作为该练习的一部分 我在开发课程时为 API 编写文档 举个例子 我正在研究一个经典的 getCollection 类型映射器类 我希望它能够检索特定用户的资
  • 将字节数组转换为 Angular6 中的图像

    我已从服务器发送字节数组中的图像文件 现在我必须将其转换为jpeg文件并将其显示在网页中 Code app get getPhoto hash function req res console log req params hash inv
  • 将 std::string 转换为 std::chrono::duration

    我的目标是转换一张单曲string以形式 H M S to chrono duration in C 11 举个例子 为了转换 00 15 00 我想出了以下间接解决方案 我计算了两个时间点 1 00 15 00 和 2 00 00 00
  • querySelectorAll 检测输入中的值

    我有多个输入 我想根据用户是否在其中输入值来进行区分
  • 将数据插入 netezza 中的外部表时出现错误 [08S01] 通信链路失败

    我正在尝试将数据从文本文件加载到外部表中Netezza 这是我的命令 INSERT INTO XTABLE DHARMESH SELECT FROM EXTERNAL C Dhams mergeresult txt USING delimi
  • 圆 - 线相交无法正常工作?

    我在之后写了这个圆线相交检测http mathworld wolfram com Circle LineIntersection html 但看起来像是这样 或者我错过了一些东西 public static bool Intersect V
  • 将 C# 语句体 lambda 转换为 VB

    VS8 中的 VB 似乎不支持 转换带有语句主体的 lambda 表达式 我在 C 应用程序中使用它们 但现在必须将其转换为 VB 我正在动态创建一大堆控件 并且我希望能够动态地为它们提供事件处理程序 这样我就可以从数据库构建动态用户界面
  • 从已安装的@types导入?

    我已经安装了md5 也尝试过blueimp md5 包含相应类型的包 如下所示 nmp install save md5 types md5 nmp install save blueimp md5 types blueimp md5 当我
  • 根据 LINQ to SQL 中的变量选择列

    我在我的应用程序中使用 C 中的 LINQ to SQL 我需要能够根据变量选择一行的一列 这对于行来说很容易 因为它是一个简单的 where 子句 但我对仅选择特定列感到不知所措 到目前为止 这是我的代码 var permissions
  • Promise 是如何构建的?

    我想查看 JavaScript Promise 的源代码 我尝试过toSource 但它仍然只是显示 Promise native code 有什么办法可以看到本机代码吗 Promise 内置于 V8 Javascript 解释器中 并部分