初步判断应该是使用 循环的时候调用uniCloud.getTempFileURL Api时产生的异步情况导致赋值时无法获取 fildID 是图片的云路径,通过uniCloud.getTempFileURL 获取图片的网络路径
this.getNumber = require("../../ApiFun/getNumber.js") //引入封装文件
this.listPic = await this.getNumber.getNumber.getPicUrl(fildID).then((result) => {
return result
})
console.log(this.listPic[0]) //undefined
export class getNumber {
static getPicUrl(fildID) {
return new Promise((resolve, reject) => {
let cloudUrl = []
console.log(fildID)
fildID.forEach( (item, index) => {
uniCloud.getTempFileURL({
fileList: [item]
})
.then(resulte => {
cloudUrl.push(resulte.fileList[0].tempFileURL)
});
resolve(cloudUrl)
})
};
}
解决: 可以是使用async await 解决 forEach 中加入async , uniCloud 前面加await
this.getNumber = require("../../ApiFun/getNumber.js") //引入封装文件
this.listPic = await this.getNumber.getNumber.getPicUrl(fildID).then((result) => {
return result
})
console.log(this.listPic[0]) //图片的网络路径
export class getNumber {
static getPicUrl(fildID) {
return new Promise((resolve, reject) => {
let cloudUrl = []
console.log(fildID)
fildID.forEach(async (item, index) => {
await uniCloud.getTempFileURL({
fileList: [item]
})
.then(resulte => {
cloudUrl.push(resulte.fileList[0].tempFileURL)
});
resolve(cloudUrl)
})
};
}