浏览代码

Fix #26 API redirects to the response before it's written to disk

Gaël Métais 10 年之前
父节点
当前提交
0776551aa7
共有 1 个文件被更改,包括 16 次插入7 次删除
  1. 16 7
      lib/server/controllers/apiController.js

+ 16 - 7
lib/server/controllers/apiController.js

@@ -52,16 +52,25 @@ var ApiController = function(app) {
                 .then(function(data) {
 
                     debug('Success');
-                    runsDatastore.markAsComplete(run.runId);
+                    
 
                     // Save result in datastore
                     data.runId = run.runId;
-                    resultsDatastore.saveResult(data);
-
-                    // Send result if the user was waiting
-                    if (run.params.waitForResponse) {
-                        res.redirect(302, '/api/results/' + run.runId);
-                    }
+                    resultsDatastore.saveResult(data)
+                        .then(function() {
+
+                            runsDatastore.markAsComplete(run.runId);
+                            
+                            // Send result if the user was waiting
+                            if (run.params.waitForResponse) {
+                                res.redirect(302, '/api/results/' + run.runId);
+                            }
+                            
+                        })
+                        .fail(function(err) {
+                            debug('Saving results to resultsDatastore failed:');
+                            debug(err);
+                        });
 
                 }).fail(function(err) {