强制JQuery $(document).ready等待承诺解析。

因此,我在为fetch请求的响应分配一个变量时遇到了一些麻烦。我主要是想向我的 API 运行一个 fetch 请求,它将返回一个值,然后我想将该值分配给 html 中的一个元素。然后我想把这个值分配给html中的一个元素。

当我运行我所拥有的东西时,我可以看到该值被赋值为 Promise {<pending>}

我看到的一些解决方案是,我可以运行多个 $(document).ready(function(){});的,但我认为它仍然没有解决的承诺,然后再进入下一个。$(document).ready(function(){});

这是我目前所掌握的情况

            var bal;
            $(document).ready(function(){
                function getCookie(name){
                    var value = "; " + document.cookie;
                    var parts = value.split("; " + name + "=");
                    if(parts.length == 2) return parts.pop().split(";").shift();
                }
                var decoded = jwt_decode(getCookie("JWT"));
                console.log(decoded.email);
                const url = "http://localhost:3001/wallets/" + decoded.email;
                bal = fetch(url).then((resp) => {
                    return resp.json();
                }).then((data) => {
                    console.log(data[0].balance);
                    return data[0].balance;
                }).catch((error) => {
                    console.log(error);
                });
                $(document).trigger("my-event");
            });
            $(document).on("my-event", function(){
                    console.log(bal);
                    console.log(parseFloat(bal));
                     var oMain = new CMain({
                                    win_occurrence:30,        //WIN PERCENTAGE.SET A VALUE FROM 0 TO 100.
                                    slot_cash: 100,          //THIS IS THE CURRENT SLOT CASH AMOUNT. THE GAME CHECKS IF THERE IS AVAILABLE CASH FOR WINNINGS.
                                    min_reel_loop:0,          //NUMBER OF REEL LOOPS BEFORE SLOT STOPS  
                                    reel_delay: 6,            //NUMBER OF FRAMES TO DELAY THE REELS THAT START AFTER THE FIRST ONE
                                    time_show_win:2000,       //DURATION IN MILLISECONDS OF THE WINNING COMBO SHOWING
                                    time_show_all_wins: 2000, //DURATION IN MILLISECONDS OF ALL WINNING COMBO
                                    money:bal,               //STARING CREDIT FOR THE USER
...

我对承诺是如何工作的,以及如何强行让事情等待解决,还是有些困惑。

解决方案:

只是为了提供一个更新,并结束这个问题。这就是我最终解决这个问题的方法。

const finishedPromise = fetch(url).then(r=r.json()).then(data => {
    return data[0].balance'
});

然后在赋值的函数中,我简单的使用了

money: await finsihedPromise

给TA打赏
共{{data.count}}人
人已打赏
未分类

tensorflow在map_fn步骤中创建变量。

2022-9-9 0:44:39

未分类

如何从一个对象数组获取数据到另一个对象数组?脚本

2022-9-9 0:55:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索