我无法找到下面的代码,为什么我收到undefined
认购,当一个对象已经返回定义unsubscribe
方法的问题。忽略map()
我只是调用静态fromTimeout
直接在这里。
class Observable {
constructor(subscribe) {
this._subscribe = subscribe
}
// Expose public api method for observers to use...
subscribe(observer) {
this._subscribe(observer)
}
static fromTimeout(time) {
return new Observable(function(observer) {
let handler = function() {
observer.next("next value")
observer.complete()
}
const timeout = setTimeout(handler, time)
return {
unsubscribe: function() {
clearTimeout(timeout)
}
}
})
}
map(projection) {
const self = this
return new Observable(function(observer) {
const subscription = self.subscribe({
next: function(value) {
observer.next(projection(value))
},
complete: function() {
observer.complete()
}
})
return subscription
})
}
}
const obs1 = Observable.fromTimeout(500)
const subscription = obs1
// .map(v => v.toUpperCase())
.subscribe({
next: function(value) {
console.log("next: ", value)
},
complete: function() {
console.log("complete called")
}
})
setTimeout(function() {
console.log(subscription) // WHY undefined!?
subscription.unsubscribe()
}, 1000)