UPDATED CODE: i, I’m new to Javascript programming and getting an undefined variable when trying to assign a new variable from a method.
I’m using node.js and creating a redis server using the redis-client in the “client variable”.
var redis = require("redis");
var client = redis.createClient();
client.on("error", function (err) {
console.log("Error " + err); });
var numberPosts;
client.get("global:nextPostId", function(err, replies) {
numberPosts = replies;
console.log(numberPosts);
});
console.log(numberPosts);
When I call console.log inside the call back function it returns the proper value, however when I call the console.log outside of the callback function it returns “undefined”. I’m trying to assign the value that is inside the callback function to the global variable numberPosts.
Any help is much appreciated, thanks.
Matt
I believe this will work:
The AJAX call is asynchronous so it doesn’t have return value.. instead you have to use callback function and only there you have the value returned by the server method.
Edit: to assign the return value to global variable, first declare global variable:
Then:
However, the value won’t be available until the AJAX call is finished so your original code can’t work. There is not direct return value to store.
You can set timer to some reasonable response time, then have the code using the global variable in there.
Edit II: in order to call the method again once it’s finished, have such code:
This will call the method over and over until the result is 0 or you pass some hard coded limit to prevent endless loop.