需求是:先上传一张图片到阿里服务器,再上传一个视频到阿里服务器,最后把前两步的返回结果和其他数据传到我们公司的服务器,都是异步,应该怎么处理,我怎么知道前两步什么时候完成,
我不想用block嵌套,那样嵌套太多了,
iOS
没做过ios开发,但是请求的调用应该都有相应吧,哪怕是请求超时。
$.ajax({
url: "上传图片", type: 'post', dataType: 'json',
success: function (data) {
$.ajax({ url: "上传视频", type: 'post', dataType: 'json',
success: function (data) {
///你说嵌套是指类似的请求嵌套么?
} });
} });
@waiter: 嗯嗯,跟你的嵌套相似,
你们没有遇到这种需求吗,你们一般是怎么做的
@小辉辉+: 这种啊..好说啊
主方法.发起2个异步请求.在异步请求回调中将结果赋值给分别的变量.
然后2个异步请求回调都调用同一个处理方法.处理方法的处理条件时 2个结果变量都已被赋值.
@吴瑞祥: 这种方法是能解决,我想找到更好一点的方法,就是让第三个上传等待前两个上传结束在执行,不知道ios的异步支持不支持,
@小辉辉+:
1. 如果多个异步调用之间没有强制性的顺序关系可以考虑,多异步同时调用。
比如:通过3个异步方法获取用户信息,方法1获取用户名,方法2获取用户年龄,方法3获取用户性别;
每个异步方法调用成功更新用户信息,当用户信息全部被更新成功后,再巴拉巴拉。
2. 如果多个异步调用存在顺序关系,可以考虑在前一个成功后顺序调用下一个;
方法1需要注意多个异步线程对用户信息更新时数据安全,以及部分异步调用失败的处理情况。
不是有异步模型吗.把这2个方法返回的task放到一个task数组里.
然后task.waitall(任务数组),他就会等里面的所有任务都完成后再继续
ios ,方法没有返回,只有block
@小辉辉+: ios就不懂了.不好意思.
@吴瑞祥: 好吧 谢谢