NodeJs is single-threaded, so we should not block the process.
in your case, you have two options: 1. passing a callback 2. using the Promise library ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise )
Example 1: transferring a callback
function fetchUser(username, callback) { var User = Parse.Object.extend("User"); var query = new Parse.Query("User"); query.equalTo("username",username); query.first({ success: function(results) { console.log("Successfully retrieved " + results.length + " scores."); callback(null,results) }, error: function(error) { console.log("Error: " + error.code + " " + error.message); callback(error) } }); }
Client Code:
function test() { var user = fetchUser("example", function(error, user){ if(error){ console.error(error) }else { console.log(user) } }); }
Example 2: Using the Promising Library
function fetchUser(username){ return new Promise(function(resolve, reject){ var User = Parse.Object.extend("User"); var query = new Parse.Query("User"); query.equalTo("username",username); query.first({ success: function(results) { console.log("Successfully retrieved " + results.length + " scores."); resolve(results) }, error: function(error) { console.log("Error: " + error.code + " " + error.message); reject(error) } }); }) }
Client Code:
function test() { fetchUser("example") .then(function(user){ console.log(user) }) .catch(function(error){ console.error(error) }) }
source share