如何在不使用异步的情况下控制回调并阻止它们返回?

How do you control callbacks and stop them from returning without using async?

所以我正在使用 Node 和 Angular(第一个项目)开发一个项目。基本上我想使用 Angulars $http 服务从数据库中获取一些内容,该服务调用在 Express 中设置的端点,该端点使用 Sequelize 查询数据库。以下是每个片段:

前端App.js

$http
    .get('/getmessages').success(function(data){
    $scope.messages = data;
    })

服务器端消息控制器

router.get('/', function(req, res, next){
    model.getMessages(function(results){
        return results;
    });
})

型号

exports.getMessages = function(callback){
  var result = model.findAll().then(function(messages){
  return callback(messages);
});

所以我面临的问题是,在模型有机会 return 之前代码 return 过快,我需要控制它。我真的需要为我的特定问题使用异步吗?我一直在研究如何控制流量,但我无法得到我需要的答案。如果你能看一看,先谢谢了。

检查你的回调。

function(req, res, next){
  model.getMessages(function(results){
    return results;
}

您的服务器端代码将 return 未定义。它将 运行 model.getMessages...并且在发生这种情况时,因为没有什么可做的,就 return 出去。这就是为什么它看起来发生得太快了。

可能想要 res.send 在你的模型 returns 之后回到回调中。

评论中关于 Async 的想法。