Typescript中的文件头-如何等待onloadend完成以继续进程
我正在onloadend内部调用API,但无法获得响应,因为我的进程在调用完成之前继续:Typescript中的文件头-如何等待onloadend完成以继续进程,typescript,file-header,Typescript,File Header,我正在onloadend内部调用API,但无法获得响应,因为我的进程在调用完成之前继续: async function InsertDataProjects(file3D: File, fileThumb: File, groupCod: string, projectName: string) { const uploadObj = async (file: File, projectName: string, objName: string, type: string) =>
async function InsertDataProjects(file3D: File, fileThumb: File, groupCod: string, projectName: string) {
const uploadObj = async (file: File, projectName: string, objName: string, type: string) => {
let reader = new FileReader();
reader.readAsDataURL(file);
reader.onloadend = async () => {
let base64 = reader.result;
let payload = {
name: projectName + objName,
type: type,
file: base64
}
await s3.upload(payload).then((resp) => {
console.log(resp);
});
}
}
try {
await uploadObj(file3D, projectName, '/3d.gltf', 'base64_2');
} catch (error) {
}
我试图在reader.onloadend之前声明一个变量,并在s3.upload响应中分配它,但是
这是不可能的,因为进程在结束onloadend调用之前继续
例如:
const uploadObj = async (file: File, projectName: string, objName: string, type: string) => {
let reader = new FileReader();
let response: any;
reader.readAsDataURL(file);
reader.onloadend = async () => {
let base64 = reader.result;
let payload = {
name: projectName + objName,
type: type,
file: base64
}
await s3.upload(payload).then((resp) => {
response = resp;
});
}
return response;
}
我还尝试在onloadend之后调用API,但也出现了错误,因为我的有效负载未定义。
例如:
如何将s3.upload的响应返回到InsertDataProjects
let resp = await uploadObj(file3D, projectName, '/3d.gltf', 'base64_2');
let resp = await uploadObj(file3D, projectName, '/3d.gltf', 'base64_2');