callback返回值但是apears是未定义的

时间:2017-04-06 10:08:58

标签: javascript node.js callback

我是节点和回调的新手。我试图将一个组列表拆分成一个数组。这些组用逗号分隔或用“ - ”分隔。最后一个意味着它是一个间隔,所以如果有22-25则意味着:22,23,24,25。我尝试了以下代码。

static class UnmodifiableSet<E> extends UnmodifiableCollection<E>
                             implements Set<E>, Serializable {
    private static final long serialVersionUID = -9215047833775013803L;

    UnmodifiableSet(Set<? extends E> s)     {super(s);}
    public boolean equals(Object o) {return o == this || c.equals(o);}
    public int hashCode()           {return c.hashCode();}
}

当我在“return temparr”上设置断点时,我得到了正确的值。但是在第一个函数中,结果是未定义的。有人知道这个问题吗?

1 个答案:

答案 0 :(得分:5)

你没有return来自回调。

简单地替换

var tempgroups = splitgroups(groups, function(res){handlegroupinterval(res)});

var tempgroups = splitgroups(groups, function(res){ return handlegroupinterval(res); });

注意回调中添加了return

此外,我认为你可以进一步简化这个

var tempgroups = splitgroups(groups, handlegroupinterval);