将数据从一个异步函数传递到另一个异步函数时出现问题

Problem in passing data from one async function to another

我正在尝试在 json 中加载图片并将其 json 传递给另一个异步函数。但是我很困惑,无法弄清楚如何将值传递给 create(json) 函数。如有任何帮助,我将不胜感激。

async function send() {
    let form = new FormData(document.querySelector('form'));
    let json = await construct_json(form, data => {
    return data;
  });
    await create(json); //The problem is I cannot pass json to this function
}

function getBase64(file, callback) {
  let reader = new FileReader();
  reader.onload = function(e) {
    callback(e.target.result);
  };
  reader.onloadend = function(e) {
    return e.target.result;
  };
  return reader.readAsDataURL(file);
}

async function construct_json(form, callback) {
  let data = await getBase64(form.get("picture"), data => {
    let json = {
      picture: data
    };
    callback(json);
  });
}

使用回调或承诺...尝试同时使用两者是代码味道

async function send() {
    let form = new FormData(document.querySelector('form'));
    let json = await construct_json(form);
    await create(json); //The problem is I cannot pass json to this function
}

function getBase64(file) {
    return new Promise(resolve => {
        let reader = new FileReader();
        reader.onloadend = function (e) {
            resolve(e.target.result);
        };
        reader.readAsDataURL(file);
    });
}

async function construct_json(form) {
    let picture = await getBase64(form.get("picture"));
    return {picture};
}