首页 新闻 会员 周边 捐助

网络请求的时候 线程依赖

0
悬赏园豆:20 [已解决问题] 解决于 2016-04-26 10:24

需求是:先上传一张图片到阿里服务器,再上传一个视频到阿里服务器,最后把前两步的返回结果和其他数据传到我们公司的服务器,都是异步,应该怎么处理,我怎么知道前两步什么时候完成,

我不想用block嵌套,那样嵌套太多了,

问题补充:

iOS

小辉辉+的主页 小辉辉+ | 初学一级 | 园豆:14
提问于:2016-04-25 17:56
< >
分享
最佳答案
0

没做过ios开发,但是请求的调用应该都有相应吧,哪怕是请求超时。

收获园豆:20
waiter | 小虾三级 |园豆:1000 | 2016-04-25 18:06

$.ajax({

     url: "上传图片", type: 'post', dataType: 'json',

     success: function (data) {

          $.ajax({ url: "上传视频", type: 'post', dataType: 'json',

                success: function (data) {

          ///你说嵌套是指类似的请求嵌套么?

                 } });

} });

waiter | 园豆:1000 (小虾三级) | 2016-04-25 18:10

@waiter: 嗯嗯,跟你的嵌套相似,

小辉辉+ | 园豆:14 (初学一级) | 2016-04-25 18:22

你们没有遇到这种需求吗,你们一般是怎么做的

小辉辉+ | 园豆:14 (初学一级) | 2016-04-25 18:23

@小辉辉+: 这种啊..好说啊 

主方法.发起2个异步请求.在异步请求回调中将结果赋值给分别的变量.

然后2个异步请求回调都调用同一个处理方法.处理方法的处理条件时 2个结果变量都已被赋值.

吴瑞祥 | 园豆:29449 (高人七级) | 2016-04-25 18:36

@吴瑞祥: 这种方法是能解决,我想找到更好一点的方法,就是让第三个上传等待前两个上传结束在执行,不知道ios的异步支持不支持,

小辉辉+ | 园豆:14 (初学一级) | 2016-04-25 18:47

@小辉辉+:

1. 如果多个异步调用之间没有强制性的顺序关系可以考虑,多异步同时调用。

比如:通过3个异步方法获取用户信息,方法1获取用户名,方法2获取用户年龄,方法3获取用户性别;

每个异步方法调用成功更新用户信息,当用户信息全部被更新成功后,再巴拉巴拉。

2. 如果多个异步调用存在顺序关系,可以考虑在前一个成功后顺序调用下一个;

方法1需要注意多个异步线程对用户信息更新时数据安全,以及部分异步调用失败的处理情况。

waiter | 园豆:1000 (小虾三级) | 2016-04-26 10:00
其他回答(1)
0

不是有异步模型吗.把这2个方法返回的task放到一个task数组里.

然后task.waitall(任务数组),他就会等里面的所有任务都完成后再继续

吴瑞祥 | 园豆:29449 (高人七级) | 2016-04-25 17:58

ios ,方法没有返回,只有block

支持(0) 反对(0) 小辉辉+ | 园豆:14 (初学一级) | 2016-04-25 18:00

@小辉辉+: ios就不懂了.不好意思.

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2016-04-25 18:02

@吴瑞祥: 好吧 谢谢

支持(0) 反对(0) 小辉辉+ | 园豆:14 (初学一级) | 2016-04-25 18:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册