原文链接: Promise 优化多个请求
上一篇: java jsoup post 数据
下一篇: vue cli3 去除 console
后台, 返回请求参数, 并模拟耗时计算
from flask import Flask, jsonify, request
from flask_cors import CORS
import time
app = Flask('app')
CORS(app)
@app.route('/hello', methods=['post'])
def hello():
time.sleep(1)
msg = request.json['msg']
return jsonify({
'msg': msg
})
app.run(host='0.0.0.0', port=8888)
第一种情况, 全部await
let url = 'http://localhost:8888/hello'
async function f() {
for (let i = 0; i < 10; i++) {
let resp = await axios.post(url, {
msg: 'hello' + i
})
console.log(resp.data)
}
}
f()
请求流每次完成一个后再次完成, 耗时时间为所有请求耗时之和
使用all, 请求时间大幅度减少, 后端默认一次并发四个, 所有请求成功后会返回数据列表
async function f() {
let list = []
for (let i = 0; i < 10; i++) {
let resp = axios.post(url, {
msg: 'hello' + i
})
list.push(resp)
}
let respList = await Promise.all(list)
console.log(respList.map(i => i.data))
}
f()