如何在Node.js中等待函数执行?

时间:2016-05-07 01:34:27

标签: node.js express

我有以下功能:

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

被调用函数User.getUserByUsername()应该更改result的值。但是,主函数isUserUsedUser.getUserByUsername()完成之前返回。在继续操作之前,如何控制代码流以等待User.getUserByUsername()完成?

谢谢!

1 个答案:

答案 0 :(得分:0)

也许承诺是您的选择,点击链接[promise]了解详细信息; 在使用承诺之后,您的代码会:



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);
      }
   });
  });
  
},