最近在做一些微信的東西。偶然發(fā)現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();
}
});
}
}