const hoge = () => {
let base64File: string | null = null;
const reader = new FileReader();
reader.onload = () => {
if (!reader.result) return;
if (typeof reader.result !== "string") return;
base64File = reader.result.split(",")[1];
};
reader.readAsDataURL(file);
// 以降の処理
}
みたいなコードを書いた時、base64Fileに値が入ったのを確認してから次の処理に移りたい場合がある
async/awaitでなんとかできたので備忘
const hoge = async () => {
const base64File = await new Promise<string>((resolve, reject) => {
const reader = new FileReader();
reader.onload = () => {
if (!reader.result || typeof reader.result !== "string") {
reject();
return;
}
resolve(reader.result.split(",")[1]);
};
reader.readAsDataURL(file);
});
// 以降の処理
}
readerをあんまり理解していないので、もっと良いコードがあれば教えてください