在javascript中维护for循环中的http请求的顺序

我正在尝试使用node.js express和mongoose(MEAN堆栈)保存MongoDB中的对象数组。 但是,当我在数组中的每个项目的前端进行http post请求时,它们不会按顺序显示在后端。 以下是我在前端的内容:

$scope.postThenPost = function() { $http.post('/collection', $scope.doc).success(function(data){ for (var i = 0; i<$scope.array.length; i++) { var req_obj = { thing: $scope.array[i] }; $http.post('/collection2', req_obj); }; }; }; 

并在后端,expression运行这个张贴到/ collection2:

 exports.create = function(req, res) { var q = new q(req.body.thing); q.save(function(err) { if (err) { return res.status(400).send({ message: errorHandler.getErrorMessage(err) }); } else { res.jsonp(q); }; }); }; 

有什么我可以做,以确保数组顺序进入数据库? 提前致谢

当你准备好所有要发送的数据时,发送$scope.array.length数量的HTTP请求是很浪费的。

只需将整个数组发布到后端,然后使用类似async方式将其保存在后端的循环中即可保证顺序。