gpt4 book ai didi

另一个函数中的Javascript异步函数

转载 作者:行者123 更新时间:2023-12-04 11:43:37 26 4
gpt4 key购买 nike

我正在尝试在另一个函数中调用异步函数。但是,当我单击网络选项卡时,它不会创建任何发布请求。这里可能是什么问题?

var onComplete = function() {
// CALLING THE ASYNC FUNCTION HERE ---> { NOT WORKING }
updateProfile()
}

async function updateProfile(){
var dataString = {
name: questions[0].answer,
gender: questions[1].answer,
dob: questions[2].answer,
country: questions[3].answer,
interested: questions[4].answer,
};
let xhr = new XMLHttpRequest();
xhr.open("POST", "processes/onboard.php", true);
xhr.onload = ()=> {
if(xhr.readyState === XMLHttpRequest.DONE) {
if(xhr.status === 200) {
// SUCCESS
}
}
}
let formData = new FormData(form);
xhr.send(JSON.stringify(dataString));
}

最佳答案

我不是 super 专家,但我们可以应用一些建议

  • 将函数一分为二以获得更干净和可维护的代码,这意味着两个 async/await block :

  • IE
        function resolveRequestAfter2Seconds() {
    return new Promise(resolve => {
    setTimeout(() => {
    resolve('resolved');
    }, 2000);
    });
    }

    async function asyncCall() {
    const result = await resolveRequestAfter2Seconds();
    console.log(result);
    }

    asyncCall();
  • 使用promise.all一旦每个单独的交易详细信息调用完成,就会接受一系列 promise 并返回一个包含您的交易的数组。

  • IE
    async (transactionKey, page) => {

    const api = `https://api/....`;
    const response = await axios.get(api);

    // create an array of promises and wait for
    // all of them to resolve before continuing

    const transactions = await Promise.all(
    response.data.map(async item => {
    const { id, transaction_id } = item;

    // get transaction details for each item in the array
    const _details = await transactionDetails(transaction_id);

    return {
    id,
    _details,
    transactionId: transaction_id,
    };
    })
    );
    return transactions;
    };

    关于另一个函数中的Javascript异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68412465/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com