首页 > 其他分享 >模拟循环批量请求后台接口

模拟循环批量请求后台接口

时间:2023-04-07 18:23:26浏览次数:31  
标签:startIdx console log 批量 endIdx let 接口 后台 Promise

使用async, await处理异步请求。用Promise, setTimeout函数模拟后台接口

<!DOCTYPE html>
<html>
<script type="text/javascript">
var arr=[];
var batchSize = 10;
for(i=0;i<30;i++){ arr.push(i);}
function b(startIdx, endIdx){
	return new Promise((resolve, reject)=> {
		setTimeout(()=>{
			let arrexc = arr.slice(startIdx, endIdx);
			for(j = 0; j< arrexc.length; j++){
				console.log("exec", arrexc[j]);
			}
			console.log("called a service:" + new Date().getTime());
			resolve("ok");
		
		}, 1000);
	});
	//return "called a service no promise";
}

async function a(){

	let startIdx = 0;
	let endIdx = startIdx + batchSize;

	while(arr.length > endIdx) {
		let res = await b(startIdx, endIdx);
		//let res = b();
		console.log(res);
		startIdx = endIdx;
		endIdx = endIdx + batchSize;
	}
}

</script>
<button onclick="a()">click</button>
</html>

运行结果
image

相关知识:
Rxjs forkJoin方法:

forkJoin([
      this.aService.getData(),
      this.bService.getData()
    ]).subscribe(resArr => {
      // 此时的返回结果将被按顺序放在一个数组中
      aData = resArr[0];
      bData = resArr[1];
  }

Promise.all()方法

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"]

标签:startIdx,console,log,批量,endIdx,let,接口,后台,Promise
From: https://www.cnblogs.com/bigjor/p/17297058.html

相关文章

  • NestJs swagger接口文档
    文档:https://docs.nestjs.cn/9/recipes?id=swagger安装首先,您必须安装所需的包:npminstall--save@nestjs/swaggerswagger-ui-express如果你正在使用fastify,你必须安装fastify-swagger而不是swagger-ui-express:npminstall--save@nestjs/swaggerfastify-swagger......
  • API 测试 | 了解 API 接口测试 | API 接口测试指南
    什么是API?API是一个缩写,它代表了一个 pplication P AGC软件覆盖整个房间。API是用于构建软件应用程序的一组例程,协议和工具。API指定一个软件程序应如何与其他软件程序进行交互。例行程序:执行特定任务的程序。例程也称为过程,函数或子例程。协议:在两个系统之间传输数据的格......
  • 文件夹批量改名工具,将首写字母改为大写
    怎么处理文件,比如快速修改文件夹名称,将首写字母改为大写?不知道如何操作的宝贝们,下面请随小编一起来试试吧,希望能给大家带来帮助。所需工具一台电脑文件夹素材若干操作步骤步骤1:在处理之前,最好将需要修改的文件夹都保存在同一个文件夹之中,方便提取步骤2:进入【文件批量改名高手】,单击......
  • 视频剪辑工具,批量分割视频、合并视频、嵌套合并视频、支持添加字幕、调整色调
    最近有很多朋友在问,怎么剪辑视频,比如合并视频、分割视频、添加封面等等,该如何实现呢?今天小编给大家分享一个新的剪辑技巧,下面一起来试试吧。材料准备:一台Win系统的电脑安装一个好简单批量智剪视频素材若干步骤演示:步骤1:运行【好简单批量智剪】,其中有多个剪辑技巧,比如说分割视频,可以......
  • 存储论——经济订货批量EOQ的R图解
    经济订货批量economicorderquantity(EOQ),通过平衡采购进货成本和保管仓储成本核算,以实现总库存成本最低的最佳订货量。经济订货批量是固定订货批量模型的一种,可以用来确定企业一次订货(外购或自制)的数量。当企业按照经济订货批量来订货时,可实现订货成本和储存成本之和最小化。......
  • wgcloud监控agent批量版本升级脚本
    [root@masterserver]#catallupdate_agent.shusername="root"passwd="Oet01279"port="22"timeout=5cmd="cd/home/wgcloud/agent-linux-amd64-v3.4.4&&wget--no-check-certificatehttp://192.168.0.13:9090/wgcloud/resource......
  • mock 接口工具 json-server
    背景由于某个原因公司的内部的内网不给访问,只有一台远程主机只能在远程主机上调好接口然后拿到数据格式在本地mock/fake数据格式调试代码就想到使用假的服务返回同样的格式的数据json-server安装[email protected]......
  • PHPCMS 后台访问特别慢的原因?
    PHPCMS后台访问特别慢的原因?因为PHPCMS默认连接数据库,使用的HOST是“localhost”,而“localhost”如果没有被“127.0.0.1”解析到,就会导致PHPCMS访问数据库会很慢,所以也导致后端页面访问很慢。解决方法将localhost进行解析或将localhost改为127.0.0.1来自【https://www.php.c......
  • unity xorpay使用HTTP中post方式请求调用接口
    结合:https://www.cnblogs.com/guangzhiruijie/p/16985533.htmlunity自带的UnityWebRequest提供了构成HTTP请求和处理HTTP响应。构造函数:publicUnityWebRequest();publicUnityWebRequest(Uriuri);publicUnityWebRequest(stringurl);publicUnityWebRequest(Uriuri,......
  • UnityWebRequest-与后台数据传输Get/Post请求
    现在越来越多的项目都要用到登录、成绩上传等功能,涉及到Unity与后台接口之前调用与发送,下面着重介绍Unity自带的Http请求,包含Get/Post请求(表单、json、有头文件的请求。)一、Get请求直接填入接口地址,即可接收后台返回的json数据,新手在这里可能有点懵,不知道接口是什么意思,这里接口......