0

I have the following function:

isUserUsed: function(username) {
  var result = true;
  User.getUserByUsername(username, function(err, user){
    if(err) throw err;
    if(user){
      result = false;
    }
 });
  return result;
},

The called function User.getUserByUsername() is supposed to change the value for result. However, the main function isUserUsed returns before User.getUserByUsername() finishes. How can I control the flow of the code to wait for User.getUserByUsername() to finish before proceeding?

Thanks!

halahmadi
  • 125
  • 2
  • 12

1 Answers1

0

maybe promise is your choise, click the link [promise] for detail; after used promise, your code would like:

isUserUsed: function(username) {
  return new Promise((resolve, reject) => {
    var result = true;
    User.getUserByUsername(username, function(err, user){
      if(err) reject(err);
      if(user){
        resolve(false);
      }
   });
  });
  
},
Frand
  • 1
  • 3