0

我正在使用 node.js、RailwayJS 和 JugglingDB。

我有一个模型:

Model.afterInitialize = function() {
  var me = this;
  Sequence.getSequence('forModel', function(sequence) {
    me.serialId = sequence;
  });
  me.title = 'Hello';
}

全部完成后,仅设置属性title。这并不奇怪,但我无法让它发挥作用。我尝试使用该async模块没有运气。

4

3 回答 3

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);
  });
};
于 2012-12-01T15:05:24.040 回答
1

如果Sequence.getSequence是异步的,则将在调用serialId从回调中设置。由于它是异步的,这可能是返回之后。如果您必须执行依赖于设置的操作,请从回调中触发它们。 Model.afterInitializeserialIdSequence.getSequence

于 2012-12-01T14:19:10.693 回答
0

Model.afterInitialize是我无法更改的第三方 API 的一部分,所以很遗憾没有办法做到这一点。我希望某种无限循环检查标志会起作用,但它不起作用,即使它确实起作用,它也会是一个障碍。

我最终连接到另一个Model.beforeSave = function(callback) {};需要回调的方法。

仅供参考,我使用的是https://github.com/1602/jugglingdb

于 2012-12-26T00:10:42.707 回答