762 Star 6.6K Fork 1.4K

GVP萧明 / knife4j

 / 详情

版本2.0.8 3.0.2 ,AfterScript 不能设置多个参数

已完成
创建于  
2021-04-28 12:41

在调用接口。自定义 AfterScript

setHeader
setAllHeader
setParameter
setAllParameter
setCommon

设置多个动态参数, 只有最后设置的才生效,希望能修复这个问题

Image description

效果如下

Image description

评论 (2)

itenzo 创建了任务
itenzo 关联仓库设置为萧明/knife4j
itenzo 修改了描述
展开全部操作日志

下载源码看了逻辑。setCommon 里面的 localStore.getItem 是一个Promise 异步操作,当加入两个以上的参数时,由于是异步操作, 最后的一个setCommon 将覆盖之前的操作.
目前的做法是延时执行 ke.global.setHeader("token",token);

确实是由于读取缓存到左返回Promise异步操作导致的,目前已经重新进行设计,下个版本中可以执行多个参数操作。
设计思想主要是:
1、使用者通过开放的ke变量操作时,会将该命令临时缓存在一个数组中,代码片段如下:
输入图片说明
2、最终执行完成后,在通过调用action方法,通过GlobalIndexDbCache.js的封装操作统一执行数组命令,最终实现数据一致性。
输入图片说明
输入图片说明

萧明 里程碑设置为Knife4j 2.0.9版本
萧明 添加了
 
bug
标签
萧明 任务状态待办的 修改为进行中
萧明 通过xiaoym/knife4j Pull Request !47任务状态进行中 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
514247 itenzo 1578926229 118100 xiaoym 1578918321
Java
1
https://gitee.com/xiaoym/knife4j.git
git@gitee.com:xiaoym/knife4j.git
xiaoym
knife4j
knife4j

搜索帮助

53164aa7 5694891 3bd8fe86 5694891