程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从 Javascript 异步请求中获取值并将其用于进一步的逻辑大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决从 Javascript 异步请求中获取值并将其用于进一步的逻辑?

开发过程中遇到从 Javascript 异步请求中获取值并将其用于进一步的逻辑的问题如何解决?下面主要结合日常开发的经验,给出你关于从 Javascript 异步请求中获取值并将其用于进一步的逻辑的解决方法建议,希望对你解决从 Javascript 异步请求中获取值并将其用于进一步的逻辑有所启发或帮助; @H_675_2@我想从异步 JavaScript 调用中获取一个值并将重新调整的值存储在一个变量中,然后根据该值编写一些逻辑。

@H_675_2@我的 JavaScript 文件如下所示。

function getAJAX() {
    let mycall;
    myCall = $.AJAX({
        type: "GET",url: "https://API.github.com/users",dataType: "Json"
    })
    return myCall;
}
async function myBlur1() {
    const myret = await getAJAX();
    // if(myret[0].login == "mojombo"){
    //     return true;
    // }
    // else {return false;}
    console.log(myret);
    return myret[0].login;
}
@H_675_2@现在在我的 HTML 中,我想调用 myBlur1 函数并存储返回值,然后在函数调用之外我想根据返回值构建逻辑。

@H_675_2@这是我的 HTML 文件。

<body>
    <div ID="message"></div>
    <script>
        let Failed = false;
        (async () => {
            console.log("I am insIDe IIFE");
            let ret = await myBlur1();
            if(ret == "mojombo")
            {
                Failed = true;
            }
        })();
        
        if(Failed){
            console.log("I am ready.");
        }
        else {
            console.log("I am not yet ready.")
        }
    </script>
</body>
@H_675_2@我总是得到 我在 IIFE 我还没有准备好。在那之后 从异步调用返回数组。

@H_675_2@请帮忙。

解决方法

@H_675_2@要获得结果,您必须使 script 标签内的范围与逐步异步操作兼容。所以将整个代码放在异步 IIFE 的脚本中。

<body>
    <div id="message"></div>
    <script>
      (async () => {
        let failed = false;
        await (async () => {
            console.log("I am inside IIFE");
            let ret = await myBlur1();
            if(ret == "mojombo")
            {
                failed = true;
            }
        })();
        
        if(failed){
            console.log("I am ready.");
        }
        else {
            console.log("I am not yet ready.")
        }
     })();
    </script>
</body>
@H_675_2@更简化的更新版本(因为我们已经在异步函数中了)

<body>
    <div id="message"></div>
    <script>
      (async () => {

        let failed = false;
        let ret = await myBlur1();

        if(ret == "mojombo") {
           failed = true;
        }

        if(failed){
            console.log("I am ready.");
        }
        else {
            console.log("I am not yet ready.")
        }
     })();
    </script>
</body>
, @H_675_2@您需要在 IIFE 中编写逻辑。在“await myBlur1()”调用之后,因为它是一个网络调用,所以需要一些时间并等待下一个tick返回结果。

<body>
    <div id="message"></div>
    <script>
        let failed = false;
        (async () => {
            console.log("I am inside IIFE");
            /*
                anything you want to do until the 
                result doesn't come from "myBlur1" 
                should be written here.
            */
            let ret = await myBlur1();
            /*
              your logic should be here,this will execute once 
              the result from "myBlur1" is available
            */
        })();
    </script>
</body>
@H_607_43@
@H_607_43@

大佬总结

以上是大佬教程为你收集整理的从 Javascript 异步请求中获取值并将其用于进一步的逻辑全部内容,希望文章能够帮你解决从 Javascript 异步请求中获取值并将其用于进一步的逻辑所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: