gpt4 book ai didi

javascript - 异步函数完成后如何开始执行函数?在这种情况下, promise 不起作用

转载 作者:行者123 更新时间:2023-12-02 23:44:09 24 4
gpt4 key购买 nike

我想同时执行两个功能。但其中之一是在回调中使用第二个(异步函数)的值。

const asyncFunction = '' // it is fetch function and i need this function 
// to complete before send() function perform
const send ='' // it sends information from asyncFunction , so it has to
// be perform after asyncFunction is completed
asyncFunction()
document.querySelector('.js-btn').addEventListener('click', send())
// I would like to listen immediately when page is load, and send an
// information when asyncFunction is complete

使用 promise ,我只能在 asyncFunction 完成时监听点击,因此,如果用户在 asyncFunction 完成之前单击 btn,则不会执行事件

我想做的是在页面加载时立即监听操作,但 send() 函数必须等到 asyncFunction 完成然后执行。

请帮助我:)

最佳答案

可能的解决方案:

  1. 禁用主体并显示“请等待”,直到 asyncFunc 完成。

  2. 在 asyncFunc 完成之前使主体不可见。

  3. 禁用发送按钮,直到 asyncFunc 完成。

  4. 向发送按钮添加匿名函数。在单击时删除该函数,并开始每 10 毫秒检查一次异步是否已完成,然后执行 send()

  5. 添加两个 bool 值。 let asyncFuncFinished = false; let sendFinished = false;现在您可以添加到 asyncFunc 并发送 if (asyncFuncFinished && sendFinished) send();

关于javascript - 异步函数完成后如何开始执行函数?在这种情况下, promise 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55931029/

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