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 に答える