我正在使用 Promise 从存储中读取文件并转换为 base64 字符串。 我有图像数组,使用 RNFS 读取图像
const promise_Images = _Images.map(async (nOPImg) => {
//get base 64 image
let image = await RNFS.readFile(nOPImg.photourl, 'base64')
nOPImg.photo = image
return nOPImg
}
})
const promise_Images2 = _Images.map(async (nOPImg) => {
//get base 64 image
let image = await RNFS.readFile(nOPImg.photourl, 'base64')
nOPImg.photo = image
return nOPImg
}
})
现在,如果我只使用 promise all 并返回正确的输出
Promise.all(promise_Images ).then(res => {
console.log("Image List", res)
})
但如果我立即执行所有 promise ,它会返回 promise
Promise.all(promise_Images1, promise_Images2 ).then(res => {
console.log("Image List", res)
})
结果
0: Promise {_40: 1, _65: 1, _55: "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABALDA4MChAODQ4SER…RQAUUUUAFFFFABQKKKACiiigAooooAKKKKACiiigAooooA//Z", _72: null}
1: Promise {_40: 1, _65: 1, _55: "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABALDA4MChAODQ4SER…FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/Z", _72: null}
2: Promise {_40: 1, _65: 1, _55: undefined, _72: null}
3: Promise {_40: 1, _65: 1, _55: undefined, _72: null}
我怎样才能在这里返回 base64 字符串?
最佳答案
But if i execute all the promises at one it returning promise
Promise.all
接受一个参数:它应该使用的一组 promise 。你传递给它两个参数。它忽略了第二个。
如果 promise_Images1
和 promise_Images2
都是数组,将它们合并:
Promise.all([...promise_Images1, ...promise_Images2]).then(res => {
// ...
})
关于javascript - Promise.all 返回 promise 数组的 promise ,但返回单个 promise 的正确值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57457290/