|
@@ -627,23 +627,32 @@ end
|
|
|
-- @returns {Observable}
|
|
|
function Observable:skipUntil(other)
|
|
|
return Observable.create(function(observer)
|
|
|
+ local triggered = false
|
|
|
local function trigger()
|
|
|
- local function onNext(...)
|
|
|
- return observer:onNext(...)
|
|
|
- end
|
|
|
+ triggered = true
|
|
|
+ end
|
|
|
+
|
|
|
+ other:subscribe(trigger, trigger, trigger)
|
|
|
|
|
|
- local function onError(message)
|
|
|
- return observer:onNext(message)
|
|
|
+ local function onNext(...)
|
|
|
+ if triggered then
|
|
|
+ observer:onNext(...)
|
|
|
end
|
|
|
+ end
|
|
|
|
|
|
- local function onComplete()
|
|
|
- return observer:onComplete()
|
|
|
+ local function onError()
|
|
|
+ if triggered then
|
|
|
+ observer:onError()
|
|
|
end
|
|
|
+ end
|
|
|
|
|
|
- return self:subscribe(onNext, onError, onComplete)
|
|
|
+ local function onComplete()
|
|
|
+ if triggered then
|
|
|
+ observer:onComplete()
|
|
|
+ end
|
|
|
end
|
|
|
|
|
|
- other:subscribe(trigger, trigger, trigger)
|
|
|
+ return self:subscribe(onNext, onError, onComplete)
|
|
|
end)
|
|
|
end
|
|
|
|