我正在使用node.js,RailwayJS和JugglingDB。
我有一个模特:
Model.afterInitialize = function() {
var me = this;
Sequence.getSequence('forModel', function(sequence) {
me.serialId = sequence;
});
me.title = 'Hello';
}
完成所有操作后,只设置属性title
。这并不奇怪,但我无法让它发挥作用。我尝试使用async
模块没有运气。
答案 0 :(得分:2)
添加了一个能够链接的回调参数。
Model.afterInitialize = function(then)
{
then = then || function(me) { };
var me = this;
Sequence.getSequence('forModel', function(sequence)
{
me.serialId = sequence;
me.title = 'Hello';
then.call(null, me);
});
};
答案 1 :(得分:1)
如果Sequence.getSequence
是异步的,serialId
将在回调中设置,在调用时设置。因为它是异步的,所以 Model.afterInitialize
之后可能返回。如果您必须执行依赖于serialId
设置的操作,请从Sequence.getSequence
回调中触发它们。
答案 2 :(得分:0)
Model.afterInitialize
是我无法更改的第三方API的一部分,因此很遗憾无法执行此操作。我希望对某个标志进行某种无限循环检查可以正常工作,但事实并非如此,即使它确实有效也会成为一种躲避。
我最终挂钩了另一个需要回调的方法Model.beforeSave = function(callback) {};
。