备忘录

16 阅读1分钟

背景

刚入行的时候接到了一个需求,一个新增接口从只能新增单条数据改成新增多条数据。开会的时候我们老板跟我说:"我给你一周时间,如果改不出来你就不用来了"(没想到怎么戏剧性的一句话出现在我身上了)。最后在第四天,我让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

今年是我入行的第二年,或许到了明年看见这坨代码依旧觉得一坨 继续摸鱼吧~