为什么全局变量没有在没有将其重新声明为局部变量的函数内更新?

下载

在有人问我是否查看了其他问题之前,我确实找到了这个(链接下方的段落)并更新了我的一个变量,因为它被重新声明为local variable. hoisted现在应该global优先。

函数中的全局变量未更新

我基本上是在尝试为加密挖掘网站获取下一次付款时间目前,我可以获取Last Payment TimePayment Interval数学不是问题......我遇到的问题是当我抓住variables(从内部 a function,他们没有更新那个global

原始声明@Global

<script>
        let pendingPaymentTrigger = false;
        let timeInterval = 0;
        let pendingPayment = 0;
 /** Script Below **/

然后我们进入function,我正在编辑它,因为其中大部分与重新创建问题无关。

function values(baseAPI, minersAPI, activeMinersAPI, workersAPI) {
            if (window.location.href.indexOf("address") > -1) {
                const urlParams = new URLSearchParams(window.location.search);
                const wallet = urlParams.get('address');
                yourAPI = minersAPI + "?method=" + wallet;
                $("#walletRequest").hide();
                $("dashboardDisplay").show();
                const XHR = new XMLHttpRequest();
                XHR.open("GET", yourAPI, true);
                XHR.onload = function() {
                    if (this.status === 200) {
                        obj = JSON.parse(this.responseText);
                    if (obj.body.primary?.payments?.balances === undefined || obj.body.primary?.payments?.generate === undefined) {
                            document.getElementById('pendingPayments').innerHTML = "Innactive";
                    } else {
                        document.getElementById('pendingPayments').innerHTML = Math.round((obj.body.primary.payments.balances + obj.body.primary.payments.generate + obj.body.primary.payments.immature) * 100) / 100 + " HVQ";
                        pendingPaymentTrigger = true;
                        pendingPayment = Math.round((obj.body.primary.payments.balances + obj.body.primary.payments.generate + obj.body.primary.payments.immature) * 100) / 100;
                        console.log(pendingPayment);
                    }

此时,console节目“1小时”|| 如果我从 更改pendingPaymentspendingPaymentTrigger它显示“真”

函数结束后...

}
console.log(pendingPayment);


let displayBlocks = new Array();
let displayBlocks2 = new Array();

function checkBlocks() { // This is the next function - not relevant, but supporting that I am **out** of the last function.

console显示“0”(原始global variable)。

我猜这与它有关,hoisting但我无法弄清楚问题出在哪里..


来自评论 1 的测试理论 - 移动到函数的末尾:

if (obj.body.primary?.payments?.balances === undefined || obj.body.primary?.payments?.generate === undefined) {
            document.getElementById('pendingPayments').innerHTML = "Innactive";
        } else {
            document.getElementById('pendingPayments').innerHTML = Math.round((obj.body.primary.payments.balances + obj.body.primary.payments.generate + obj.body.primary.payments.immature) * 100) / 100 + " HVQ";
            pendingPaymentTrigger = true;
            pendingPayment = Math.round((obj.body.primary.payments.balances + obj.body.primary.payments.generate + obj.body.primary.payments.immature) * 100) / 100;
            console.log(pendingPayment);
        }
    }
};
XHR.send();

这并没有改变结果——这里有时间,但之后没有。

撤消

您可以在脚本之后声明一个函数,并在 XHR 请求完成并且您已经改变了变量时调用该函数。

/* ... */
pendingPaymentTrigger = true;
pendingPayment = Math.round((obj.body.primary.payments.balances + obj.body.primary.payments.generate + obj.body.primary.payments.immature) * 100) / 100;
doSomething();
/* ... */
function doSomething() {
    console.log(pendingPayment);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

为什么即使事后没有修改,Java中的局部变量也不被视为“有效的最终变量”?

来自分类Java

为什么Java中没有全局变量?

来自分类Dev

打印所有全局变量/局部变量?

来自分类Dev

为什么eclipse会说即使使用了局部变量也没有使用?

来自分类Dev

为什么必须在分配变量之前将其声明为全局变量?

来自分类Dev

为什么在此函数中全局变量与局部变量不同?

来自分类Dev

将变量声明为全局变量,然后声明为局部变量-Shadowing-

来自分类Dev

使用局部变量声明全局变量

来自分类Dev

我的JavaScript函数中没有看到全局变量

来自分类Dev

为什么我的函数局部变量之间在堆栈中没有存储空间?

来自分类Dev

为什么此函数作为全局变量而不是局部变量运行?

来自分类Dev

全局变量PHP没有更新

来自分类Dev

如何计算没有全局变量的函数的调用次数?

来自分类Dev

函数内部的JavaScript延迟,没有全局变量

来自分类Dev

为什么在有局部变量的情况下调用全局变量?

来自分类Dev

使变量在没有全局变量的函数外部可用

来自分类Dev

为什么我的局部变量没有被覆盖?

来自分类Dev

声明数组指针时,全局变量和局部变量有什么区别?

来自分类Dev

为什么局部变量不具有默认类型而全局变量具有C?

来自分类Dev

重新设计一个函数,使其在C中没有全局变量

来自分类Dev

当函数具有同义局部变量时,如何在函数中获取全局变量?

来自分类Dev

将函数变量声明为局部变量而不是全局变量是否影响效率?

来自分类Dev

没有全局变量或函数参数的递归调用

来自分类Dev

为什么我的全局变量没有改变?

来自分类Dev

为什么我的 python 全局变量没有改变?

来自分类Dev

为什么我的全局变量似乎没有改变?

来自分类Dev

为什么 xquery 允许局部变量重新声明?

来自分类Dev

Python - 全局变量没有传递给函数

来自分类Dev

Javascript - 在已声明的全局变量中分配新值后定义局部变量会覆盖全局变量。为什么?

Related 相关文章

  1. 1

    为什么即使事后没有修改,Java中的局部变量也不被视为“有效的最终变量”?

  2. 2

    为什么Java中没有全局变量?

  3. 3

    打印所有全局变量/局部变量?

  4. 4

    为什么eclipse会说即使使用了局部变量也没有使用?

  5. 5

    为什么必须在分配变量之前将其声明为全局变量?

  6. 6

    为什么在此函数中全局变量与局部变量不同?

  7. 7

    将变量声明为全局变量,然后声明为局部变量-Shadowing-

  8. 8

    使用局部变量声明全局变量

  9. 9

    我的JavaScript函数中没有看到全局变量

  10. 10

    为什么我的函数局部变量之间在堆栈中没有存储空间?

  11. 11

    为什么此函数作为全局变量而不是局部变量运行?

  12. 12

    全局变量PHP没有更新

  13. 13

    如何计算没有全局变量的函数的调用次数?

  14. 14

    函数内部的JavaScript延迟,没有全局变量

  15. 15

    为什么在有局部变量的情况下调用全局变量?

  16. 16

    使变量在没有全局变量的函数外部可用

  17. 17

    为什么我的局部变量没有被覆盖?

  18. 18

    声明数组指针时,全局变量和局部变量有什么区别?

  19. 19

    为什么局部变量不具有默认类型而全局变量具有C?

  20. 20

    重新设计一个函数,使其在C中没有全局变量

  21. 21

    当函数具有同义局部变量时,如何在函数中获取全局变量?

  22. 22

    将函数变量声明为局部变量而不是全局变量是否影响效率?

  23. 23

    没有全局变量或函数参数的递归调用

  24. 24

    为什么我的全局变量没有改变?

  25. 25

    为什么我的 python 全局变量没有改变?

  26. 26

    为什么我的全局变量似乎没有改变?

  27. 27

    为什么 xquery 允许局部变量重新声明?

  28. 28

    Python - 全局变量没有传递给函数

  29. 29

    Javascript - 在已声明的全局变量中分配新值后定义局部变量会覆盖全局变量。为什么?

热门标签

归档