我使用的是node.js、RailwayJS和JugglingDB。
我有一个模型:
Model.afterInitialize = function() {
var me = this;
Sequence.getSequence('forModel', function(sequence) {
me.serialId = sequence;
});
me.title = 'Hello';
}完成所有操作后,仅设置属性title。这并不奇怪,但我不能让它工作。我尝试使用async模块,但没有成功。
发布于 2012-12-26 08:10:43
Model.afterInitialize是第三方应用程序接口的一部分,我无法更改,所以不幸的是,没有办法做到这一点。我希望某种类型的无限循环检查标志能起作用,但它不能,即使它能起作用,这也是一个障碍。
我最终连接到了另一个方法Model.beforeSave = function(callback) {};,它需要一个回调。
仅供参考,我使用的是https://github.com/1602/jugglingdb
发布于 2012-12-01 23:05:24
增加了一个回调参数,可以进行链接。
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);
});
};发布于 2012-12-01 22:19:11
如果Sequence.getSequence是异步的,则serialId将在调用时从回调中设置。因为它是异步的,所以这可能是在Model.afterInitialize返回之后。如果您必须执行依赖于所设置的serialId的操作,请从Sequence.getSequence回调中触发它们。
https://stackoverflow.com/questions/13660091
复制相似问题