$(document).ready(function () {
var value = getParmsVals()[\"search\"];
$.getJSON(\'/api/search/GetQuestionByKey/\' + value, function (jsonData) {
$(
You can also put your variable on the object and use .bind()
, like so:
this.fullname = "default";
$.getJSON('/api/search/GetUserById/' + userId, function (jsonData) {
this.fullname = jsonData.firstname + " " + jsonData.lastname;
}.bind(this));
You wouldn't return
from an async method, as you can see, it doesn't work! What you need is a callback function, consider:
function getAuthorName(userId, callback) {
var fullname = "default";
$.getJSON('/api/search/GetUserById/' + userId, function (jsonData) {
fullname = jsonData.firstname + " " + jsonData.lastname;
callback(fullname);
});
}
Notice how we pass in callback
and then call it at the end of your get call? Now call this method like so:
getAuthorName(userID, function(name) {
console.log(name);
});
And now you have access to fullname
in that callback function!
I like the answer by @tymeJV it is an easy solve to the problem
I just wanted to point out that solving the big picture of having easily accessible data inside Javascript is a great reason why data-centric JS frameworks exist
http://knockoutjs.com/ http://backbonejs.org/ http://angularjs.org/