背景
刚入行的时候接到了一个需求,一个新增接口从只能新增单条数据改成新增多条数据。开会的时候我们老板跟我说:"我给你一周时间,如果改不出来你就不用来了"(没想到怎么戏剧性的一句话出现在我身上了)。最后在第四天,我让AI匆忙的解决了问题。现在没有活闲得慌,我便尝试自己解决这个问题。
启个后端
我选择的技术栈是flask
from flask import Flask, request, jsonify
from flask_cors import CORS
from time import sleep
app = Flask(__name__)
CORS(app)
users = []
@app.route('/api/', methods=['POST'])
def handle_users():
if request.method == 'POST':
return add_user()
def add_user():
try:
user_data = request.get_json()
if not user_data['age']:
return jsonify({'error': 'No data'}), 400
users.append(user_data)
sleep(5)
return jsonify({
'code':200,
'message': 'OK',
'data': user_data,
}), 200
except Exception as e:
return jsonify({
'code':500
}), 500
if __name__ == '__main__':
app.run(debug=True, host='127.0.0.1', port=5000)
启动前端
const addData = [
{ name: 'a', age: 1 },
{ name: 'b', age: 2 },
{ name: 'c', age: 3 },
{ name: 'd', age: 4 },
{ name: 'e', age: 5 },
{ name: 'e' },
{ name: 'e' },
{ name: 'e' },
{ name: 'e' },
{ name: 'e' },
{ name: 'e' },
{ name: 'e' },
{ name: 'e' },
]
let url = `http://127.0.0.1:5000/api/`
let fetchList = []
addData.forEach(item => {
fetchList.push(
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(item)
}).then(response => response.json())
)
})
const response = Promise.all(fetchList)
response
.then(results => {
const resFailList = results.filter(i=>i.code!==200) //将失败的数据存起来,便于用户重新填写
})
.catch(error => {
console.log(error)
})
.finally(()=>{
console.log('end');
})
我这里的思路是使用promise.all来解决这个问题(好像那个时候AI也是这么解决的)
end
今年是我入行的第二年,或许到了明年看见这坨代码依旧觉得一坨 继续摸鱼吧~