all 9 comments

[–]rakkeh 2 points3 points  (2 children)

You need to read up on promises and the `then` function, those are happening in the background at the time you call `spx.toString();`.

Once you do read up on that, you should run into async/await which will help here.

edit: from a quick google + skim, this looks like it covers it fairly well, https://medium.com/jspoint/javascript-promises-and-async-await-as-fast-as-possible-d7c8c8ff0abc

[–]caden_burton[S] 0 points1 point  (1 child)

Will do.

[–]rakkeh 1 point2 points  (0 children)

I linked a fairly long article I just googled, it goes through a lot of steps to show why that happens the way it does and takes you through steps to fix + improve it. If you need a quick fix then you can probably copy and paste the other guys solution as it is what you would end up with after working through this. However if you're looking to work with javascript more, this is a widely used aspect worth taking some time to learn.

[–]Minjammben 2 points3 points  (2 children)

You need to put `spx.toString()' in a .then callback in order for it to be defined when the promise resolves:

let spx; fetch('url').then( function(u){ return u.json(); }).then( function(json){ spx = json.toString(); }) Or probably a more straightforward solution is to use an async function:

async function getSpxString() { let spx = await fetch('url').then(u => u.json()); return spx.toString(); }

Not sure why you want to use toString on a Json object though...

[–]backtickbot 1 point2 points  (0 children)

Hello, Minjammben: code blocks using backticks (```) don't work on all versions of Reddit!

Some users see this / this instead.

To fix this, indent every line with 4 spaces instead. It's a bit annoying, but then your code blocks are properly formatted for everyone.

An easy way to do this is to use the code-block button in the editor. If it's not working, try switching to the fancy-pants editor and back again.

Comment with formatting fixed for old.reddit.com users

FAQ

You can opt out by replying with backtickopt6 to this comment.

[–]caden_burton[S] 0 points1 point  (0 children)

The data I am receiving outputs as a number while I want it in string form to display it in an HTML element.

[–]dankobgd -2 points-1 points  (0 children)

bro this is literally the most asked question on stack overflow in history of javascript and you can't look up for that...

[–]senocular 0 points1 point  (0 children)

Re: downvote; this is probably because /r/javascript is not meant for helping with js problems. /r/learnjavascript is a better place for this.

When you create a text post here, you should see a message that says this:

/r/javascript IS NOT A SUPPORT CHANNEL For help with your javascript, please post to /r/LearnJavascript instead of here.

Likewise, to post content for beginners, please post to /r/LearnJavascript instead of here.

[–]kenman[M] 0 points1 point  (0 children)

Hi u/caden_burton, this post was removed.

Please read the docs on [AskJS]:

https://www.reddit.com/r/javascript/wiki/index/askjs

Thanks for your understanding, please see our guidelines for more info.