2013-02-06 50 views

回答

24

只需拨打一个res.sendsetTimeout里面:

setTimeout((function() {res.send(items)}), 2000); 
4

尝试connect-pause模块。它会在您的应用程序中添加全部或部分路线的延迟。

+0

简单的模块,有效地做什么@maggocnx的解决方案建议。 – adambullmer

+0

给我打电话给老学校,但为1行代码添加依赖似乎过分:https://github.com/flesler/connect-pause/blob/master/index.js – Tobia

45

使用中间件,为您的所有要求

app.use(function(req,res,next){setTimeout(next,1000)}); 
1

你也可以只编写使用一个承诺或回调(使用在这种情况下q承诺)自己的泛型延迟处理程序:

暂停.js文件:

var q = require('q'); 

function pause(time) { 
    var deferred = q.defer(); 

    // if the supplied time value is not a number, 
    // set it to 0, 
    // else use supplied value 
    time = isNaN(time) ? 0 : time; 

    // Logging that this function has been called, 
    // just in case you forgot about a pause() you added somewhere, 
    // and you think your code is just running super-slow :) 
    console.log('pause()-ing for ' + time + ' milliseconds'); 

    setTimeout(function() { 
     deferred.resolve(); 
    }, time); 

    return deferred.promise; 
} 

module.exports = pause; 

然后用它,但是你会想:

server.js:

var pause = require('./pause'); 

router.get('/items', function (req, res) { 
    var items = []; 

    pause(2000) 
     .then(function() { 
      res.send(items) 
     }); 

}); 
3

要globaly它适用于你可以使用下面的代码的所有请求:

app.use((req, res, next) => { 
    setTimeout(next, Math.floor((Math.random() * 2000) + 100)); 
}); 

时间值:

最大= 2000(排序....最小值是在现实中增加了210 0)

最小= 100