在Node.js中寻找解决方案

时间:2016-10-26 01:52:25

标签: node.js

我正在为Node.js中的问题寻找解决方案。请帮忙!

我有一个路由器“查找用户”,如果用户在db中存在,则继续执行taskFunc(),否则响应错误。但是,我的taskFunc()必须花费很多时间才能完成,因为每30秒它就会完成一项任务。

我想在检查用户存在后,必须立即响应客户端,taskFunc()只是在服务器上运行,如果有错误则抛出。

router.post('/router1, function(req, res){
    var username = body.username

    User.find({where: {username: username}})
    .then(function(_data){
        if(_data){
            return taskFunc()
        }else{
            res.status(400).end()
        }
    })
})

var taskFunc = function(username){
    // function này thời gian xử lý mất nhiều thời gian
    // vì nó cứ nghỉ khoảng 30s mới thực hiện 1 nhiệm vụ khác
}

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找以下内容:

temp

有关setTimeout的详细信息,请参阅此处:https://nodejs.org/docs/v0.6.1/api/timers.html

答案 1 :(得分:0)

User.find({where: {username: username}})
.then(function(_data){
    if(_data){
        taskFunc()
        res.status(200).send('ok')
    }else{
        res.status(400).end()
    }
})

如果我理解正确,您只想发送回复并在后台运行任务?

如果是,请执行res.status(200).send('ok')