繁体   English   中英

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

[英]Problem in passing data from one async function to another

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

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};
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM