javascript - 将图像转换为base64字符串时,等待后仍然返回承诺
问题描述
我有下面的方法将图像转换为 base64 字符串
const toBase64 = file => new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
});
然后我决定使用这个函数,如下所示:
let base_strings = files.map(async file => {
let image = await toBase64(file);
console.dir(image); //this console base string
return image;
});
但是当我尝试访问我的 base_string 数组时,我仍然得到如下承诺:
我不确定我做错了什么,我需要能够在数组中获取我的 base64 字符串。
解决方案
尝试Promise.all()
像这样使用:
let base_strings = files.map(file => {
return toBase64(file);
});
const myImages = await Promise.all(base_strings);
推荐阅读
- php - PHP:在类内使用 DB 连接
- jquery - 如何停止在后台播放的音频
- atom-editor - 在 Atom 中配置代码折叠以模仿 PatentStorm
- matlab - 函数 'subsindex' 没有为类 'struct' 的值定义
- javascript - 选择框更改时调用网站(HTML、Javascript)
- php - laravel-如何将包含带有背景图像的 div 的电子邮件从我的服务器发送到 gmail
- numpy - 将 Cython 包装的 C 函数与 NumPy 中的 BLAS 链接起来
- python - 导入和重塑 MNIST 数据,numpy
- c# - 无法使用 JIL Serializer ExcludeNulls 选项
- javascript - 如果使用 Jquery 单击 td,则为表内的所有 tr 元素着色