如何传递承诺数组而不调用它们?

2023-11-29

我尝试将 axios 数组(如承诺)传递给函数。当我调用该方法时,我需要执行这些承诺。

const arrayOfAxios = [
  axios('https://api.github.com/')
]

setTimeout(() => {
  console.log('before call promise');

  Promise.all(arrayOfAxios).then(res => {

   console.log({ res });
  });

}, 5000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.2/axios.js" integrity="sha256-bd8XIKzrtyJ1O5Sh3Xp3GiuMIzWC42ZekvrMMD4GxRg=" crossorigin="anonymous"></script>

在我的代码中我可以看到https://api.github.com/立即地。而不是当我调用promise.all.

我做错了吗?还有另一种方法可以设置承诺数组并稍后调用它们吗? (我的意思是 axios 示例)


承诺却没有run任何事,他们只是observe正在运行的东西。因此,并不是您不想调用承诺,而是您不想启动他们正在观察的事情。你打电话时axios(或其他什么),它是already开始它返回的承诺所观察到的过程。

如果您不想启动该过程,请不要致电axios(ETC。)。例如,您可以在数组中放置一个调用它的函数,然后在准备好开始工作时调用它:

const arrayOfAxios = [
  () => axios('https://api.github.com/') // *** A function we haven't called yet
];

setTimeout(() => {
  console.log('before call promise');

  Promise.all(arrayOfAxios.map(f => f())).then(res => {
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−^^^^^^^^ *** Calling the function(s)
   console.log({ res });
  });

}, 5000);

或者,如果您对数组中的所有条目执行相同的操作,请存储该操作所需的信息(例如 URL 或选项对象)axios):

const arrayOfAxios = [
  'https://api.github.com/' // *** Just the information needed for the call
];

setTimeout(() => {
  console.log('before call promise');

  Promise.all(arrayOfAxios.map(url => axios(url))).then(res => {
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−^^^^^^^^^^^^^^^^^ *** Making the calls
   console.log({ res });
  });

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

如何传递承诺数组而不调用它们? 的相关文章

随机推荐

  • 用 UML 表示模板类的正确方法是什么?

    在 UML 图上 表示模板类的正确方法是什么 普通矩形右上角有一个虚线矩形 用来表示模板参数 像这样的东西 T ClassName
  • 通过通用引用传递静态 constexpr 变量?

    在下面的 static constexpr member L在类中初始化A然后通过值或 通用 引用传递 后者在 Clang 中失败 但在 GCC 中失败 并且成员 非成员函数的行为略有不同 更详细地说 include
  • MVC DropDownList 滞后

    我将下拉列表的 id 发布回索引 index2 视图 但已经落后了 第二次按 选择 后 它会显示正确的列表 http www jeroenchristens be CountriesWorld 第一页仅用于显示完整列表 从下拉列表中选择后
  • 将关键点转换为 mat 或将其保存到文本文件 opencv

    我在 opencv开源 中提取了SIFT特征 并将它们提取为关键点 现在 我想将它们转换为矩阵 带有它们的 x y 坐标 或将它们保存在文本文件中 在这里 您可以看到用于提取关键点的示例代码 现在我想知道如何将它们转换为 MAT 或将它们保
  • 如何使用 apache poi 在 docx 文件中设置纯头?

    我想使用 apache poi 为 docx 文档创建标头 但我遇到了困难 我没有可以显示的工作代码 我想请求一些代码作为起点 有一个Apache POI 单元测试这涵盖了您的具体情况 您正在寻找TestXWPFHeader testSet
  • 用.NET 5.0编写的控制台应用程序无法在同事的计算机上运行

    我在工作中用 NET 5 0 编写了一个工具 现在必须将其提供给非开发人员使用 不幸的是 无论我如何发布它 我都无法让它在她的计算机上运行 目前我将其设置为 配置 发布 任何CPU 目标框架 net5 0 部署方式 独立的 目标运行时间 w
  • viewDidLoad 在 didSelectRowAtIndexPath 之前被调用

    I have viewDidLoad 下一个 tableView 的 之前被调用didSelectRowAtIndexPath 当前的tableView 我正在使用 单例 来保存我的模型 到目前为止 它运行得很好 我试图传递当前表中选择的行
  • Android设备OTG路径

    我正在开发一个Android我必须在其中获取详细信息的应用程序USB device通过连接到平板电脑OTG 当我使用sys bus usb0 devices然后我得到平板电脑所有设备的列表 而我只想获取通过 OTG 端口连接的设备名称 有什
  • 打印多个 datagridview 页面

    我想打印我的DataGridView内容 但是当我有很多行时DataGridView我不知道我需要如何使用HasMorePages财产 这是我当前的代码 private void printDocument1 PrintPage objec
  • 我可以使 WAR 依赖于 JBoss 5.1 中的 JNDI 条目吗?

    作为从 JBoss 4 0 4 升级到 5 1 的一部分 我试图在成功部署 EAR 后部署 WAR JBoss 5 x 不支持前缀部署排序器就像 4 x 那样 这意味着我必须在 WAR 的 jboss web xml 中使用 看来我不能依赖
  • 我如何知道发布数据正确

    IBAction clicked id sender NSString CIDString cID text NSURL url NSURL URLWithString http localhost 8080 test NSString p
  • 转换为 swift 3 后,视图控制器中出现奇怪的通用函数

    在我的项目中 转换为 swift 3 后 我的前面出现了一个新函数ViewController class fileprivate func lt
  • 从 chrome 扩展从 https 发送请求到 http [重复]

    这个问题在这里已经有答案了 大家好 我在通过 google chrome 扩展从 https 站点发送请求到 http 站点时遇到一个奇怪的问题 jquery js 6 混合内容 页面位于 https www google co in we
  • AudioCache 堆大小溢出问题请求大小:1053184,最大大小:1048576

    我正在开发一个应用程序 我想同时播放两个 mp3 文件 其中一个作为背景音乐 并希望单独控制每个播放器的声音 每个文件大小为 5 mb 我已经完成了主音频文件 但是当我尝试用它播放第二个文件时 它会抛出错误 SoundManager mSo
  • 如何定位 css 中的下一个元素?

    我不确定这是否可行 但是是否可以识别 div 类下方的 div 如果是这样 我会用什么来做到这一点 div class img wrap div div lt This div class img wrap div div lt This
  • 如何识别 Facebook 用户代理

    在 FB 上分享我的页面之一时 我想显示一些不同的内容 问题是 我不想使用 og 元素 而是识别 FB 用户代理 它是什么 我找不到它 有关用户代理字符串的列表 请查找here 截至 2015 年 9 月 最常用的是facebookexte
  • Properties.Resources 未加载图像

    我有一个 Visual Studio 2012 C 游戏应用程序 我在项目的资源文件中拥有我正在使用的所有 png 图像 您知道为什么我可以使用 Properties Resources 访问除一个文件之外的所有文件吗 我检查了完整的文件路
  • 性能基准:PHP 生成的内容 VS。基于 AJAX 的 JavaScript 和 DOM

    对于以下非常简单的任务 从数据库查询产品列表并将其呈现在网页上 考虑两种设置 Setup1 PHP脚本查询 所有内容都构建在服务器上 并将整个页面返回给客户端 Setup2 使用 AJAX 请求内容的静态 HTML 页面骨架 接收到的内容在
  • 内置管理员帐户无权执行 Windows 10 中的某些操作

    在某个时候 我开始在 Windows 10 中遇到以下问题 当我尝试运行编译的 Windows 通用应用程序时 Microsoft Visual Studio 15 显示以下错误 无法激活 Windows 应用商店应用程序 激活请求失败 出
  • 如何传递承诺数组而不调用它们?

    我尝试将 axios 数组 如承诺 传递给函数 当我调用该方法时 我需要执行这些承诺 const arrayOfAxios axios https api github com setTimeout gt console log befor