Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使异步javascript正常工作_Javascript_Node.js_Railway.js - Fatal编程技术网

无法使异步javascript正常工作

无法使异步javascript正常工作,javascript,node.js,railway.js,Javascript,Node.js,Railway.js,我正在使用node.js、RailwayJS和JugglingDB 我有一个模型: Model.afterInitialize = function() { var me = this; Sequence.getSequence('forModel', function(sequence) { me.serialId = sequence; }); me.title = 'Hello'; } 完成所有操作后,仅设置属性title。这并不奇怪,但我无法让它工作。我尝试使用

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

我有一个模型:

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

完成所有操作后,仅设置属性
title
。这并不奇怪,但我无法让它工作。我尝试使用
async
模块,但运气不佳。

如果
Sequence.getSequence
是异步的,则调用
serialId
时将从回调中设置。因为它是异步的,所以可能是在
Model.afterInitialize
返回之后。如果您必须执行依赖于所设置的
serialId
的操作,请从
Sequence.getSequence
回调中启动它们。

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

添加了一个回调参数,以便能够链接

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);
  });
};

添加了一个回调参数,以便能够链接

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);
  });
};

Model.afterInitialize
是我无法更改的第三方API的一部分,因此不幸的是,没有办法做到这一点。我希望某种形式的无限循环检查标志会起作用,但事实并非如此,即使它真的起作用,也会是一种预兆

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


仅供参考,我使用的是

模型。初始化后
是第三方API的一部分,我无法更改,因此不幸的是,无法执行此操作。我希望某种形式的无限循环检查标志会起作用,但事实并非如此,即使它真的起作用,也会是一种预兆

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

仅供参考,我正在使用