如何在不使用异步的情况下控制回调并阻止它们返回?
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 的想法。
所以我正在使用 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 的想法。