小程序
小游戏
企业微信
微信支付
扫描小程序码分享
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
写了
chooseImage22: async function (){
var that = this;
var user_id = wx.getStorageSync('userid');
wx.chooseImage({
count: 6, // 默认9
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
//var tempFilePaths = res.tempFilePaths[0];
var tempFilePaths = res.tempFilePaths;
var imgs1 = that.data.imgs1;
for (var i = 0; i < tempFilePaths.length; i++) {
if (imgs1.length >= 6) {
that.setData({
imgs1: imgs1
});
// return false;
} else {
//imgs1.push(tempFilePaths[i]);
}
for (var s = 0; s < tempFilePaths.length; s++) {
let promise = new Promise((resolve,reject)=>{
wx.uploadFile({
url: app.config.apiUrl + 'Api/Poster/uploadImage',
filePath: tempFilePaths[s],
name: 'image',
formData:{uid:user_id,s:s},
console.log('abcccdddd');
console.log(res);
var st = JSON.parse(res.data);
console.log(st);
image = st.data;
var img_data = that.data.img_data;
if (imgs1.length < 6){
img_data.push(st.data.imgurl);
imgs1.push(app.config.apiDomain+st.data.imgurl);
/*if(!that.data.ttpic){ //用户没有上传图片
ttpic:image
}*/
//mrpic: 'https://mp.8658.cn'+image,
img_data: img_data,
//ttpic: image, //选中的自定义转发图片
//pic: image
imgs1:imgs1
})
resolve('done');
},
fail:function(){
console.log('uploadfile-fail');
let result = await promise;
} //end for
fail: function (res) {
complete: function (res) {
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
现在高的基础库已经直接async/await的写法了,不需要引入其他依赖包了。
还有你这代码写的,看的都头疼,你想把上传文件封装成一个promise,那你就抽出来封装,干嘛写到业务里面,而且还把业务逻辑又都写到promise里了,你这么写还不如直接用.then写更方便了,而且你async应该是放错位置了,应该是放在wx.chooseImage的success那里。
async有写吗
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
写了
chooseImage22: async function (){
var that = this;
var user_id = wx.getStorageSync('userid');
wx.chooseImage({
count: 6, // 默认9
sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) {
// 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
//var tempFilePaths = res.tempFilePaths[0];
var tempFilePaths = res.tempFilePaths;
var imgs1 = that.data.imgs1;
for (var i = 0; i < tempFilePaths.length; i++) {
if (imgs1.length >= 6) {
that.setData({
imgs1: imgs1
});
// return false;
} else {
//imgs1.push(tempFilePaths[i]);
}
}
that.setData({
imgs1: imgs1
});
for (var s = 0; s < tempFilePaths.length; s++) {
let promise = new Promise((resolve,reject)=>{
wx.uploadFile({
url: app.config.apiUrl + 'Api/Poster/uploadImage',
filePath: tempFilePaths[s],
name: 'image',
formData:{uid:user_id,s:s},
success: function (res) {
console.log('abcccdddd');
console.log(res);
var st = JSON.parse(res.data);
console.log(st);
image = st.data;
var img_data = that.data.img_data;
var imgs1 = that.data.imgs1;
if (imgs1.length < 6){
img_data.push(st.data.imgurl);
imgs1.push(app.config.apiDomain+st.data.imgurl);
}
/*if(!that.data.ttpic){ //用户没有上传图片
that.setData({
ttpic:image
});
}*/
that.setData({
//mrpic: 'https://mp.8658.cn'+image,
img_data: img_data,
//ttpic: image, //选中的自定义转发图片
//pic: image
imgs1:imgs1
})
resolve('done');
},
fail:function(){
console.log('uploadfile-fail');
}
})
});
let result = await promise;
} //end for
},
fail: function (res) {
},
complete: function (res) {
}
});
},
现在高的基础库已经直接async/await的写法了,不需要引入其他依赖包了。
还有你这代码写的,看的都头疼,你想把上传文件封装成一个promise,那你就抽出来封装,干嘛写到业务里面,而且还把业务逻辑又都写到promise里了,你这么写还不如直接用.then写更方便了,而且你async应该是放错位置了,应该是放在wx.chooseImage的success那里。
async有写吗