uni的请求基本都是异步的,最近项目碰到了需要把多张图片分批次全部上传后再实现跳转页面。
按逻辑写我就是将上传图片的方法封装,然后再提交的按钮监听事件里多次调用封装的上传图片的方法。如何判断这多次上传是否成功成了难题。
开始的时候我上传图片的请求封装是这样写的:
调用时:
后来看了Promise异步编程,将调用时候改为:
将每次上传图片封装返回值改成Promise对象,方便下一张图片调用.then()方法。调用就是我们的表单提交按钮的方法在验证所有值都是对的时候,调用下面的方法
.then(onFulfilled, onRejected)
then方法,方法带两个参数,可选,分别为成功时的回调以及失败时的回调
如上代码,log(1)时执行了resolve,log(2)时执行了reject
that.uploadHead(recordID).then(that.uploadHead(recordID)).then(function(){
console.log('finished!');//完成图片上传后的处理
}) .catch(function(err) { console.log(err); });