for (; index < 10; index++) {
uploadImageSourceToWeChat(subjectExtend, index).then(function(res) {// do some work
})
}
function uploadImageSourceToWeChat(subjectExtend, orderNo) {
console.log("这里会执行多次")
return new Promise(function(resolve, reject) {
console.log("这里也会执行多次")
setTimeout(function() {
wx.uploadImage({
localId: subjectExtend.content[orderNo],
isShowProgressTips: 0,
success: function success(res) {
console.log("这里只执行一次")
},
fail: function fail() {
alert('上传微信图片失败!');
reject();
}
});
}, 100);
}
);
}
作用域问题
private getImgBase64(wxLocalIds: string[], index: number) { if (index >= wxLocalIds.length) { return; } const that = this; wx.getLocalImgData({ localId: wxLocalIds[index], success(res: any) { that.localIds.push(res.localData); const tmp = index + 1; that.getImgBase64(wxLocalIds, tmp); }, }); }
等一次执行完之后再执行下一次
兄弟 用闭包解决下吧
知道吗for循环休一下子就跑完了不出意外你这代码能调用的那次估计是第一张图片或者最后一张吧。不能用for循环,还没传完for已经跑完了。