因此,在将变量分配给获取请求的响应时遇到了一些麻烦。我本质上想对我的API运行获取请求,该请求将返回一个值。然后,我想将该值分配给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
...
对于诺言如何工作以及如何强制使事情等待其解决,我仍然有些困惑。
答案 0 :(得分:0)
仅提供更新并结束此问题。这是我最终解决问题的方法。
const finishedPromise = fetch(url).then(r=r.json()).then(data => {
return data[0].balance'
});
然后在函数中分配简单使用的值
money: await finsihedPromise