需求:
查看详情时,部分字段中又多张图,并需调获取图片接口,然后将图片回显
获取图片
getImageFun(imgPath) {
return new Promise((resolve, reject) => {
uni.request({
url: BASEURL + '/files/uploads/' + imgPath,
data: {},
responseType: 'arraybuffer',
method: 'get',
header: {
cookie: uni.getStorageSync('sid') ? 'febersecurityid=' + uni.getStorageSync(
'sid') : ''
},
timeout: 1200000, //120s
success: (res) => {
const imgBase =
`data:image/jpeg;base64,${uni.arrayBufferToBase64(res.data)}`;
resolve(imgBase);
},
fail(res) {
wx.showToast({
icon: 'none',
duration: 3000,
title: '图片获取失败'
});
}
});
});
}
map中调异步接口
if (data.Hyzm) {
this.imgList.Hyzm = data.Hyzm;
const imgBaseArry = await data.Hyzm.map(async (item) => {
let imgBase = await this.getImageFun(item);
return imgBase;
});
console.log(imgBaseArry)
}
imgBaseArry 打印结果:
imgBaseArry 拿到的是一个值为Promise对象的数组,那么我们如何拿到具体的值呢?
this.imgBaseList.Hyzm = await this.getResult(imgBaseArry);
console.log(this.imgBaseList.Hyzm)
getResult(arry) {
return new Promise((resolve, reject) => {
Promise.all(arry).then((result) => {
resolve(result)
});
});
},