最近在做一些微信的东西。偶然发现uploadImage
接口无论选多少张图都只能上传第一张:
wx.chooseImage({
count: 9,
success: function(res) {
res.localIds.forEach(function(localId) {
wx.uploadImage({
localId: localId,
success: function(res) {
alert('上传成功'); // 无论选择几张都只会alert一次
}
});
});
}
});
微信文档的常见问题中指出了这个问题,uploadImage
接口是异步的,但不能同时调用多次,多图需要排队。
后来修改代码如下,就能正常上传多图了。
var localIds = [];
wx.chooseImage({
count: 9,
success: function(res) {
localIds = res.localIds;
syncUpload();
}
});
function syncUpload() {
if (!localIds.length) {
alert('上传成功!');
} else {
var localId = localIds.pop();
wx.uploadImage({
localId: localId,
success: function() {
syncUpload();
}
});
}
}