代码之家  ›  专栏  ›  技术社区  ›  a--m

将…rest传递给NetConnection调用

  •  3
  • a--m  · 技术社区  · 14 年前

    public function requestData(service : String, ...params) : void
    {
     nc.call(service, params);
    }
    

    这不起作用,因为调用希望每个参数用逗号分隔,如:

    nc.call(service, params[0], params[1], params[2]);
    

    1 回复  |  直到 14 年前
        1
  •  3
  •   Juan Pablo Califano    14 年前

    试试这个:

    public function requestData(service : String, ...params) : void
    {
        var applyArgs:Array = params && params.length > 0 
                                ? [service].concat(params) 
                                : [service];
        nc.call.apply(nc,applyArgs);    
    }
    

    我没有测试过这段特定的代码,但是由于Function::apply接受的第二个参数是一个将被转换为参数列表的数组,所以这应该可以工作(除非我犯了一些愚蠢的错误。。。现在还没有编译器帮助。

    applyArgs 数组将始终包含 service