如何简化含await判断的Axios重复调用代码?
消除Axios重复调用代码的优化方案
当然可以,你可以通过提取公共请求配置的方式消除重复代码,后续修改请求参数(比如headers、请求方法)只需要改一处,维护起来更方便。
优化后的代码如下:
export const handler = async (event, useAwait) => { const { path, data } = JSON.parse(event); // 提取所有重复的请求配置到一个对象里 const requestOptions = { url: `https://example.com/api${path}`, method: 'post', headers: { 'api-key': key, }, data: data, }; // 先发起请求拿到Promise实例 const requestPromise = axios(requestOptions); if (useAwait) { // 需要阻塞等待结果时,直接await这个Promise并返回 return await requestPromise; } else { // 非阻塞场景下,请求后台执行,直接返回true return true; } };
优化思路说明
- 提取公共配置:把原代码中重复的URL拼接、请求方法、headers、请求数据都抽成单独的配置对象,避免两处重复编写。
- 复用请求Promise:不管是否需要等待结果,只调用一次
axios生成Promise实例,分支逻辑只处理是否等待这个Promise的结果,彻底消除重复调用代码。
内容的提问来源于stack exchange,提问作者Yada
相关产品推荐
相关产品推荐

