-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
并发请求回调问题 #241
Comments
推测应该是你的单例导致的共享数据,个人感觉巧神的原意是每个request自己进行初始化单独管理自己的属性。你却用了集约型的感觉 |
success和failure 的回调内容被覆盖了,所以当第一个请求没拿到数据而又进行第二个请求的时候就会有这种情况,应该是这个情况。 |
.....明白了, 因为 Manage 是单例的, 所以回调内容会存在内存共享, 当使用 Manage 同时发送两个请求的时候, 两个请求的回调的会出现因为内存共享而覆盖的情况.....瞬间感觉自己给自己挖了一个大坑... |
感觉只能单个请求单独处理自己的回调了...或者不使用单例, 写公共调用的方法给 API 使用..不知道有没有其他的好的解决方案.. |
在使用工具类的意义不是特别大,而且使用工具类意味着很多直接从request 获取的属性都不好获取。继承于YTKRequest写个子类吧。就是统一处理成功或者失败block 就比较麻烦,需要改框架代码😭而且json转model 以及自定义error信息都需要改框架代码。 |
统一处理回调这个应该很普遍的吧...验证 token 和 code 感觉差不多所有的请求都要...不想改框架的代码😂😂😂 |
为什么不使用 |
嗯, 刚刚看了下, 使用jsonValidator好像也能够实现验证 code 的检查需求, 我再研究下如何使用requestCompleteFilter, 谢谢啦~ |
@skyline75489 大神,上代码吧。我只想到了修改agent类里面的源码,不修改源码的情况下求指教 |
我这边是这样的, 我把 YTK 和我的具体业务逻辑层做了一个二次封装
首先是
ran'h
然后做了一个 Manage 的类用来统一处理 Token 和回调的问题,如:
现在出现的问题是, 我在两个页面注册同一个监听登录成功的通知,每当用户登录成功后就会请求两个列表刷新界面, 这两个请求的代码片段如下:
界面1:
界面2:
两个数组都是泛型,enquiryArray的数据类型是enquiryMode, 第二个请求的是TradeRecordModel,但是我在第二个界面登陆成功后再第一个界面回调刷新界面的时候会出现这样的错误
也即是在得到通知后, 第一个界面和第二界面都会刷新界面, 但是在第一个请求的数组里面的数据却是第二个请求的回调数据...
请问您知道这个是为什么呢?
怎么样解决呢?
是不是因为线程的问题..
The text was updated successfully, but these errors were encountered: