返回顶部
首页 > 资讯 > 前端开发 > node.js >js中如何使用递归与promise按顺序请求数据
  • 215
分享到

js中如何使用递归与promise按顺序请求数据

2024-04-02 19:04:59 215人浏览 八月长安
摘要

小编给大家分享一下js中如何使用递归与promise按顺序请求数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!问题:项目中有一个需求,一个tabBar下面如果没有内容就不让该tabBar

小编给大家分享一下js中如何使用递归与promise按顺序请求数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

问题:项目中有一个需求,一个tabBar下面如果没有内容就不让该tabBar显示,当然至于有没有内容,需要我们通过请求的来判断,但是由于请求是异步的,如何让请求按照tabBar的顺序进行?

方案:我们可以将promise变成下一个请求,可以利用递归来实现

实施:

//定义初始数据 requestlist就像tabBar列表

  let requestlist = [1, 2, 3, 4, 5, 6, 7,8,9];
  //每个tabBar的返回数据使用reslist装起来
  let reslist = [];
  function startapi() {
    //定义counts,用来收集请求的次数,(也可以用reslist的length进行判断)
    let counts = 0;
    return function apirequest() {
        let arg =arguments[0]
        let a = new Promise((res, rej) => {
          //setTimeout模拟请求到接收的时间需要5秒钟
          setTimeout(function () {
            res('成功返回数据');
          },100)
        })
        //无论成功或者失败都要进行下一次,以免阻塞,成功请求的末尾有s标志,失败的末尾有f标志
        a.then(() => {
         counts++;
          if (counts > requestlist.length) {
            return;
          }
          console.log(counts)
          //1,假设当前请求出错的时候我们认为这不合法,假设此时counts为3
          if(counts==3){
          throw new Error('第三个失败')
          }
          //2,假设当前请求下没有数据的时候我们认为不合法 ,假设此时counts为4
          if(counts==4){
           reslist.push(arg + 'f');
          }
          if(counts!=4){
          reslist.push(arg + 's');
          }
          apirequest(requestlist[counts])
          console.log(reslist)
        }).catch(err => {
        reslist.push(arg + 'f');
        //递归调用
        apirequest(requestlist[counts])
          console.log(err)
        })
    }
  }
  let newapiget = startapi();
  newapiget(requestlist[0])

 最终我们打印结果得到:

 js中如何使用递归与promise按顺序请求数据

看完了这篇文章,相信你对“js中如何使用递归与promise按顺序请求数据”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网node.js频道,感谢各位的阅读!

--结束END--

本文标题: js中如何使用递归与promise按顺序请求数据

本文链接: https://lsjlt.com/news/65533.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • js中如何使用递归与promise按顺序请求数据
    小编给大家分享一下js中如何使用递归与promise按顺序请求数据,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!问题:项目中有一个需求,一个tabBar下面如果没有内容就不让该tabBar...
    99+
    2024-04-02
  • PHP 函数的递归调用会如何影响执行顺序?
    php 函数递归调用影响执行顺序,遵循后进先出栈结构:函数递归调用自身时入栈。栈中最后一个函数先执行。函数返回时出栈,调用函数继续执行。 PHP 函数的递归调用如何影响执行顺序 PHP...
    99+
    2024-04-17
    php 递归调用
  • oracle中如何使用connectbyprior递归函数
    这篇文章将为大家详细讲解有关oracle中如何使用connectbyprior递归函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  oracle中con...
    99+
    2024-04-02
  • 在vue中如何使用递归函数
    在vue中使用递归函数的方法:1.新建vue.js项目;2.在项目中定义递归函数;3.使用this方法引用递归函数;4.执行代码调用递归函数;具体步骤如下:首先,在vue-cli中创建一个vue.js项目;vue init webpack ...
    99+
    2024-04-02
  • 如何使用JS写Ajax请求函数功能
    这篇文章给大家分享的是有关如何使用JS写Ajax请求函数功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一般我们写网页的时候,如果用到 Ajax 请求服务器,都是使用 JQue...
    99+
    2024-04-02
  • C++ 函数的递归实现:如何使用递归来构建复杂数据结构?
    使用递归可以构建复杂的数据结构,如二叉树。递归算法通过分解问题并调用自身来解决复杂的子问题。尽管递归算法简洁高效,但需要注意可能发生的堆栈溢出和性能问题。 C++ 函数的递归实现:构建...
    99+
    2024-04-22
    数据结构 递归 c++ 堆栈溢出
  • 小程序中如何使用wx.request发起请求
    这篇文章主要为大家展示了小程序中如何使用wx.request发起请求,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“小程序中如何使用wx.request发起请求”这篇文章吧。wx.request(O...
    99+
    2023-06-26
  • C++ 函数的递归实现:如何在不同的数据结构上有效使用递归?
    递归在 c++++ 中有效地处理了数据结构,具体如下:数组:轻松计算和值和找到最大值链表:有效计算长度和反转链表树:快速计算高度和先序遍历 C++ 函数的递归实现:有效应用于数据结构 ...
    99+
    2024-04-22
    数据结构 递归 c++
  • vue如何使用递归树形数据寻找对象
    这篇文章主要讲解了“vue如何使用递归树形数据寻找对象”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue如何使用递归树形数据寻找对象”吧!一、数据结构在开始介绍方法前,让我们先看一下常见的...
    99+
    2023-07-05
  • vue中如何使用axios数据请求get、post方法
    小编给大家分享一下vue中如何使用axios数据请求get、post方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!vue中使用axios方法我们先安装axios这个方法npm inst...
    99+
    2024-04-02
  • JAVA中如何使用多线程并行请求数据
    在Java中使用多线程并行请求数据可以使用Thread类或者Executor框架来实现。使用Thread类可以手动创建和管理线程,每...
    99+
    2023-09-21
    JAVA
  • 如何使用Python处理HTTP请求中的大数据?
    随着互联网的飞速发展,大量的数据被传输到网络上,而其中大多数数据都是通过HTTP请求进行传输的。当我们需要对这些HTTP请求中的大数据进行处理时,Python是一个非常强大的工具。在本文中,我们将探讨如何使用Python处理HTTP请求中...
    99+
    2023-10-28
    http 大数据 自然语言处理
  • C#中如何使用迭代器和递归算法处理数据
    C#中如何使用迭代器和递归算法处理数据,需要具体代码示例在C#中,迭代器和递归算法是两种常用的数据处理方法。迭代器可以帮助我们遍历集合中的元素,而递归算法则能够有效地处理复杂的问题。本文将详细介绍如何使用迭代器和递归算法来处理数据,并提供具...
    99+
    2023-10-22
    数据处理 迭代器 递归算法
  • Qt数据库中如何实现通用数据库请求
    小编给大家分享一下Qt数据库中如何实现通用数据库请求,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、前言数据库请求是在数据库采集的基础上,换成http请求的形式...
    99+
    2023-06-29
  • JavaScript中如何使用函数递归实现数组扁平化
    小编给大家分享一下JavaScript中如何使用函数递归实现数组扁平化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!数组扁平化是...
    99+
    2024-04-02
  • 如何使用Python处理HTTP请求中的大数据对象?
    如何使用Python处理HTTP请求中的大数据对象? 在现代互联网的世界里,HTTP请求是非常常见的一种数据交互方式,而随着数据量的不断增大,HTTP请求中的数据也越来越大。在这种情况下,如何使用Python处理HTTP请求中的大数据对象成...
    99+
    2023-10-21
    http 大数据 对象
  • Python编程如何在递归函数中使用迭代器
    首先,想要实现的功能是递归遍历文件夹,遇到满足条件的文件时,用yield返回该文件的位置。 如果不用递归器,可以这样实现: path_list = [] def get_one_...
    99+
    2024-04-02
  • 如何分析Python数据结构与算法中的顺序表
    这篇文章的内容主要围绕如何分析Python数据结构与算法中的顺序表进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!0. 学习目标线性表在计算机中的表示...
    99+
    2023-06-26
  • MySQL中如何用循环语句处理递归关系数据
    在MySQL中,可以使用存储过程来处理递归关系数据,其中可以使用循环语句来实现递归查询和处理。以下是一个简单的示例: DELIMIT...
    99+
    2024-04-30
    MySQL
  • 如何在PHP中使用数据归档函数
    随着业务逐渐扩大,数据的存储量也不断增加。在这种情况下,如何高效地管理这些数据,更好地利用数据成为开发人员亟需解决的问题。数据归档是管理大量数据的一种重要策略,可以极大地减轻数据库的负担。在PHP中,数据归档的一个常用方法是使用数据归档函数...
    99+
    2023-05-18
    函数 PHP 数据归档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作