在有人问我是否查看了其他问题之前,我确实找到了这个(链接下方的段落)并更新了我的一个变量,因为它被重新声明为local variable
. hoisted
它现在应该global
优先。
我基本上是在尝试为加密挖掘网站获取下一次付款时间。目前,我可以获取Last Payment Time和Payment 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小时”|| 如果我从 更改pendingPayments
为pendingPaymentTrigger
它显示“真”
函数结束后...
}
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] 删除。
我来说两句