setTimeout 函数的第三个参数是什么?

2023-11-30

我正在阅读一些使用 Promise 对象的代码。

有一个setTimeout函数有三个参数,我想知道第三个参数是做什么的?因为通常它只有两个参数。

代码如下:

function timeout(ms) {
    return new Promise((resolve, reject) => {
        setTimeout(resolve, ms , 'done');
    });
}
timeout(1000).then(value => {
    console.log(value);
});

我注意到第三个参数被传递给resolve函数,但是为什么我可以在函数中使用它then?它是如何工作的?


下面两个例子都可以解释一下

const promise1 = Promise.resolve(3);
const promise2 = 42;
const promise3 = new Promise((resolve, reject) => {
  setTimeout(resolve, 100, 'foo');
});

Promise.all([promise1, promise2, promise3]).then((values) => {
  console.log(values); // expected output: Array [3, 42, "foo"]
});

上面的例子可以写成: -

const promise1 = Promise.resolve(3);
const promise2 = 42;
const promise3 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('foo');
  }, 100)
});

Promise.all([promise1, promise2, promise3]).then((values) => {
  console.log(values); // expected output: Array [3, 42, "foo"]
});

简而言之,第三个参数是用户需要传递给引用函数的参数[第一个参数] 给予 setTimeout,这是承诺。我们可以将此功能称为“参数结转”。

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

setTimeout 函数的第三个参数是什么? 的相关文章

  • React中ComponentDidMount生命周期方法被调用两次

    在我的 React 应用程序中 加载应用程序时会进行两次初始 API 调用 我查看了 Chrome gt inpsect 中的网络选项卡 启动器 调用堆栈显示第一个调用是从VM123000 bundle js而第二个调用只是从实际的bund
  • 如何在 Adob​​e Brackets 中使用 const 和 let 禁用 JSLint ES6 错误?

    我用 Google 搜索并浏览了这个网站 但我只能找到 JSHint 而不是 JSLint 的答案 为了摆脱 use function form of use strict 错误 我添加了 jslint node true 但要禁用使用错误
  • iOS Javascript DOM“冻结?”

    这里有几个问题 有没有办法阻止 iOS 在滚动时冻结页面上的 javascript 当您在另一个选项卡中或切换应用程序时 iOS 是否会冻结 JavaScript iOS 上还有其他主要的 javascript 限制吗 iOS 6 x 会暂
  • Highcharts 奇怪的分组行为

    我正在使用延迟加载 http www highcharts com stock demo lazy loading加载 OHLC 数据的方法 在服务器端 我使用 Python MySQL 并有 4 个包含 OHLC 数据的表 时间间隔为 5
  • 如何阻止地址自动填充谷歌地点

    所以我在我的表单上有一个谷歌地图自动完成功能 当它到达一个位置时 它会占据该位置并格式化它 以便所有正确的信息都进入表单上的不同输入 我遇到的问题是在 place changed 事件触发自动完成填充输入之前 我想阻止最初的人口 而是填充我
  • 引发一系列事件 Backbone event:name

    extend object Backbone Events object on myalert one function msg document body innerHTML eve1 msg msg name this name con
  • 克隆元素对应表单中所有元素的事件

    我成功克隆了表行 其中包含从数据库检索的值 不过我对它没有什么问题 我对所有元素使用了类 因为克隆会重复 ID 不会出现问题 因为它无法唯一地定位每个元素 使每个元素 行在这里唯一的方法是什么 功能如何工作 当第一次选择框时 所选 ID 的
  • flexslider 中的 GIF 滑块,如何仅在滑块上时开始 gif

    现在我有一个带有四个幻灯片的 Flexslider 第三个滑块是 gif 而不是像其他滑块一样是 jpg 我遇到的问题是 第三个 gif 滑块显然在到达页面时立即启动 而不是在您实际到达该滑块时启动 当点击前两个滑块时 gif 就快完成了
  • 从画布保存/转换后文件质量下降的问题

    这是我正在使用的代码 代码位于这篇文章的底部 但这里是链接GitHubGist Noitidart ff addon snippet browseForBadgeThenCreateSaveAnApply js https gist git
  • React 功能组件:作为函数调用与作为组件调用

    假设我有一个功能组件 const Foo props gt div props name div 直接作为函数调用有什么区别 const fooParent gt div Foo name foo div 与将其称为组件相比 const f
  • 如何使用 JS/Puppeteer 上传文件

    我试图弄清楚如何将图片文件上传到输入对话框中 不可能只输入名称并按 Enter 键 因为我没有找到使用 Puppeteer 实现自动化的方法 我想我必须设置一些值作为图片 但我不知道该怎么做 有任何想法吗 您使用上传文件elementHan
  • Jasmine 单元测试不等待承诺解析

    我有一个有角度的服务 它具有像这样的异步依赖项 function angular module app factory myService q asyncService function q asyncService var myData
  • Angular2 - 防止复选框被选中

    我有一个每行包含一个复选框的表 在表头中 我有一个Check All切换所有表格行框的复选框 我正在尝试实现一些逻辑 如果复选框的数量将超过特定限制 则显示错误并且不切换表行复选框或checkall盒子本身 有一个问题允许checkAll即
  • JavaScript 检查时区名称是否有效

    有没有一种方法可以在不使用外部库的情况下检查 JavaScript 中的时区名称是否有效 当用户在文本字段中输入时区名称时 我想验证时区是否有效 我知道我们可以使用时刻时区库轻松做到这一点 但我不想使用任何额外的库 我正在寻找纯 JavaS
  • 特别更改画布上的笔画不透明度,但不更改颜色

    我有一个漂亮整洁的脚本 可以循环显示颜色 并且与 xxxxxx格式 但我想改变透明度 有没有办法做到这一点 我指的是ctx strokeStyle 这是当前的代码 canvas strokeStyle 16777215 s length i
  • Electron 应用程序中的 NEDB 持久化

    我正在尝试从电子应用程序连接到 nedb CRUD 操作效果很好 但我没有看到 db 文件 D my db 检查隐藏文件 文件存在于某个地方 因为即使在机器重新启动后它也会保留数据 我怀疑电子威胁着我的相对路径 但我可以在任何地方找到它 v
  • 如何优化 Three.js 中多个 sphereGeometry 的渲染?

    我想优化 Three js 中 sphereGeometry 的渲染 因为它成为我的程序的瓶颈 javascript程序如下所示 var sphereThree for var idSphere 0 idSphere lt numSpher
  • 将base64图像转换为Node Js中的文件

    我是 Node Js 新手 我需要包含用户的个人资料图片 我从 IOS 应用程序收到 Base64 图像的请求 我需要将其存储在 images 文件夹中并将图像路径保存在 mongodb 数据库中 我使用了以下代码 var bitmap n
  • 如何在输入时格式化 contenteditable div?

    我正在尝试编写一个函数 允许 contenteditable div 在用户输入 div 时执行一些自动格式化 到目前为止我只能让它在 IE 中运行 有人可以帮助我吗 function formatOnKeyUp if window get
  • JavaScript 开关(真)

    你好 我正在尝试处理 ajax json 响应 这是我的代码 success function j switch true case j choice1 alert choice2 break case j choice2 alert ch

随机推荐

  • 当机器人加入服务器时发送消息

    我想每次当机器人被邀请到服务器时发送一条消息 然后它应该写这样的内容 你好 这是我的不和谐机器人 到目前为止 我有这段代码 它不会产生任何错误 但也不会发送消息 bot event async def on server join ctx
  • 是否可以解决“为可变参数参数创建 T 的通用数组”编译器警告?

    这是相关代码的简化版本 一个泛型类使用另一个具有泛型类型参数的类 并且需要将泛型类型之一传递给具有可变参数参数的方法 class Assembler
  • Microsoft BotFramework-WebChat 滚动问题

    我正在使用微软 BotFramework WebChat 但我在让它正确滚动时遇到问题 通常 当机器人响应时 用户被迫手动滚动到聊天日志的底部 我找不到任何有关挂钩的文档 可以让我调用 API 来滚动它 有没有办法让聊天窗口自动滚动 HTM
  • C++ 中 int 的 ostringstream 问题

    我希望输出以下代码hello5 相反 它只输出hello 尝试将 int 输出到 似乎是一个问题ostringstream 当我直接输出相同的内容时cout我收到了预期的输入 在 Snow Leopard 上使用 XCode 3 2 Tha
  • 带复选框的 Javafx 8 Tableview 选择

    我已经设置了一个启用多选的表视图 并尝试将插入列中的复选框的侦听器附加到表的选择模型 checkBoxTableColumn setCellValueFactory cellData gt CheckBox checkBox new Che
  • java.lang.IndexOutOfBoundsException

    我使用 ArrayList 来存储关卡中每个矩形的 阴影 但是当我像这样迭代时 for int n 0 n lt shadows size n g2d fillPolygon shadows get n 0 g2d fillPolygon
  • SpeechToText 并运行 ACTION_CHECK_TTS_DATA 意图

    我已经实施了TextToSpeech完全按照中提到的集成这篇博文 在我将它添加到我的程序中后 它现在干扰了我的其他程序intents 例如 项目清单 用户启动应用程序 用户调用加载活动 用户选择要加载的文件 活动返回 fileanme 以在
  • Kubernetes 不将数据复制到已安装的卷中

    根据这里的文档 https docs docker com storage volumes 如果您启动一个创建新卷的容器 如上所述 并且该容器在要挂载的目录 例如上面的 app 中具有文件或目录 则该目录的内容将被复制到该卷中 然后容器安装
  • 在 PYTHON 中向文件添加时间戳

    我可以使用 os rename 重命名文件 没有任何问题 错误 但是当我尝试重命名一个文件并添加时间戳时 它会抛出 win3 错误或 win123 错误 尝试了所有组合但没有运气 任何人都可以帮忙 成功运行代码 usr bin python
  • 通过 Java 与 Apple 推送通知服务器进行 SSL 握手

    您好 我正在尝试使用 Java 向我的设备发送推送消息 但我在建立 ssl 连接时已经遇到问题了 这是到目前为止的代码 KeyStore keyStore KeyStore getInstance PKCS12 InputStream ke
  • 如何在CSS中获取背景图像上的扫描线

    我有一个整页背景图像 我想在其上覆盖扫描线 我想复制我在二十世纪九十年代的数字艺术中看到的更传统的对角线扫描线效果 例如实现here在 Bootstrap 的模式掩码 5 中 我看过一些关于对角线扫描线的教程 但一直找不到这样的东西 我将如
  • 注册自定义控件失败

    我尝试在 webconfig 文件中注册我的用户控件 因为我收到 元素不存在 错误 但当我尝试在 webconfig 中注册它们时 我收到以下错误 Invalid or missing attributes found in the tag
  • 如何在displaytag中导出带有xlsx扩展名的excel文件

    We used 显示标签用于导出文件xls格式 但我想要它xlsx格式 有什么办法可以将excel文件转换为新格式吗 我将显示标签中的扩展名更改为xls 到 xlsx
  • 使用 jQuery 和 PHP 实现长轮询

    我想构建一个基于 JavaScript jQuery 将用于 AJAX 和 PHP 的聊天 我听说这样做的一个好方法是使用长轮询 我确实理解这个想法 但我不知道如何在服务器端实现它 无限循环听起来是个坏主意 您不想创建无限循环 但可以设置超
  • 可滚动 div 无法在 Android 模拟器、iPhone 模拟器中工作

    我正在使用phonegap 我想保留固定的页眉和页脚 并且我想在它们之间滚动内容 为此 我将 div 与 div width 249px height 299px background color Gray overflow y auto
  • 如何使用宏在 SAS 中获取当前月份名称和年份

    我正在 SAS 中触发一封邮件 该邮件应在邮件中保存当前月份和年份 如何创建宏变量 month year这样 month应显示十月 year应显示 2020 目前使用 let sysmonth sysfunc month sysdate d
  • SqlDataSourceEnumerator.Instance.GetDataSources() 找不到本地 SQL Server 2008 实例

    我使用以下代码列出所有远程和本地 SQL Server 实例 public static void LocateSqlInstances using DataTable sqlSources SqlDataSourceEnumerator
  • 如何使用新的 OpenSSL 库编译 PHP

    我正在尝试使用 OpenSSL 编译 PHP 只需配置即可与默认 OpenSSL 库 0 9 6 配合使用 with openssl usr 但是 我安装了一个新的 OpenSSL 库 1 0 0 我想用它来编译 PHP 这个图书馆位于 u
  • 如何仅通过这种回溯找到第一个解决方案

    我正在尝试编写一个数独求解器 它将仅返回第一个可能的解决方案 我设法用 void 方法打印所有可能的解决方案 但我不能在第一个发现时停止 我知道首选方法是切换到布尔方法并返回true上树 但我找不到正确的写法 我尝试的任何方式总是给出编译错
  • setTimeout 函数的第三个参数是什么?

    我正在阅读一些使用 Promise 对象的代码 有一个setTimeout函数有三个参数 我想知道第三个参数是做什么的 因为通常它只有两个参数 代码如下 function timeout ms return new Promise reso