RemoveListener() public method

public RemoveListener ( object[]>.Action callback ) : void
callback object[]>.Action
return void
    public static UniRx.IObservable <object> ToObservable(this SignalRequester[] requests, BaseSignal[] returns)
    {
        if (returns == null || returns.Length == 0)
        {
            throw new ArgumentNullException("returns not valid");
        }

        Subject <object>  notYetReturned = new Subject <object>();
        List <BaseSignal> returnsLeft    = new List <BaseSignal>(returns);

        for (int i = 0; i < returns.Length; i++)
        {
            BaseSignal ret = returns[i];

            Action <IBaseSignal, object[]> handler = null;
            handler = (s, xs) => {
                if (!returnsLeft.Contains(ret))
                {
                    throw new Exception("Something went wrong...");
                }

                Assert.AreEqual(s, ret);

                ret.RemoveListener(handler);
                returnsLeft.Remove(ret);
                notYetReturned.OnNext(ret);

                if (returnsLeft.Count == 0)
                {
                    notYetReturned.OnCompleted();
                }
            };

            ret.AddListener(handler);
        }

        return(notYetReturned);
    }