我查看了互联网寻找答案,但我找不到。
由于这个https://www.youtube.com/watch?v=8aGhZQkoFbQ令人惊叹的视频,我对事件循环进行了一些研究。
我的问题仍未解决。我尝试过承诺和回调但我的问题就在于此。因为我调用了一个函数,里面有异步函数,所以如果我把回调,它会等待函数的结束而不是异步函数。
所以我请你帮忙。我请求帮助XD我越来越了解javascript,这就是我的问题:
我有一个nodejs表达角应用程序。我在前端有一个表格。我用这个表单向我的节点服务器发出一个帖子请求,而不是我抓住这个数据我处理它,然后我开始向服务器发出6个请求。在这个6请求结束时,我需要将数据发送回前端,所以现在我告诉你我没有得到的内容
app.post('/api/todos', function(req, res) {
var from = (new Date(req.body.from)).getTime();
var to = (new Date(req.body.to)).getTime();
var partner = req.body.partner;
var POS = req.body.POS;
Request.request(from,to,partner,POS);
res.send("data")
}
这是关于我对表单的处理,因为你可以看到问题是当我打电话给#34; Request.request"即使我回电话,它也会在数据到来之前完成,因为" request.request"是一个同步函数,所有6个请求都是异步的。
我给你一些暗示,我的请求已经过了很多次但是如果我总结它会更容易。
Request.request(){
res.end(){
savedata**;
if (recursionIndex<y)
indexRequest();
else
bodyRequest()
} //async request
req.end(){}
}
基本上一旦你定义了你想要重复你完成的功能的时间。现在我需要的是等到一切结束,然后将整个数据回馈给角度
bodyRequest(){
// Same logic of before I didnt use any callback I just used recursion
}
现在我的问题是,因为我只是使用递归,我怎样才能使整个事情异步,如何在最后一次递归发生后包装所有内容并返回数据?
答案 0 :(得分:0)
伙计们我得到了答案,
app.post('/api/todos', function(req, res) {
var from = (new Date(req.body.from)).getTime();
var to = (new Date(req.body.to)).getTime();
var partner = req.body.partner;
var POS = req.body.POS;
Request.request(from,to,partner,POS,res);
//res.send("data")
}
我将“res”传递给我的Request.request并通过所有子功能完成了诀窍!
因为res是一个拥有函数来回答来自角度的POST请求的对象,所以当你调用它时你需要这个对象。 感谢大家的关注!