Loopback远程钩子的下一个参数是什么?

时间:2016-05-13 16:29:29

标签: node.js loopbackjs

我是loopback的新手,我正在尝试学习使用远程钩子。我读过我需要提供三个参数的文档。 contextunused变量以及next参数。

我经常看到在远程钩子next()的末尾被调用。

有人可以向我解释一下这个参数在loopback中的用途是什么?

1 个答案:

答案 0 :(得分:4)

所有关于node.js的异步性质。

next的目的是告诉Loopback您已完成钩子中所需的所有操作,并且可以进行处理。

由于您可能需要在钩子中执行异步操作,因此需要Loopback等待您完成它,然后调用next()并且Loopback知道您已完成。

最重要的是,如果您没有致电next(),您的应用会挂起,导致408超时。

例如,如果您需要向另一台服务器发出请求:

SomeModel.beforeSave = function(next, modelInstance) {

    // if you call next() here it would be called immediately and the result of request
    // would not be asign to modelInstance.someProperty 

    request('http://api.server.com', function (error, response, body) {

        // do something with result of the request and call next
        modelInstance.someProperty = body;

        // now when you updated modelInstance call next();
        next();

    })

    // same here if you call next() here it would be called immediately and the result of request
    // would not be asign to modelInstance.someProperty 

};