使用 RxJs 时出错 "unrecognized teardown 10 added to Subscription"
Getting Error with RxJs "unrecognized teardown 10 added to Subscription"
我正在尝试对零超时进行简单订阅,以便在事件循环进入下一阶段后执行一些代码
import { Observable } from 'rxjs/Observable';
const render = () => {
...
return Observable.create(observer =>
setTimeout(() => {
observer.next();
observer.complete();
})
);
};
...
render().subscribe(() => { ... });
这导致
ERROR Error: unrecognized teardown 10 added to Subscription.
at Subscriber.Subscription.add (Subscription.js:144)
...
如果我将 Observable 替换为 Promise 方法,代码将按预期工作
const render = () => {
...
return new Promise(resolve =>
setTimeout(() => resolve())
);
};
...
render().then(() => { ... });
这是怎么回事?
当 RxJS 期望 undefined
时,您将返回 setTimeout
调用的结果,函数或具有 unsubscribe
函数的对象。
您可以通过在箭头函数中添加大括号来解决问题:
return Observable.create(observer => {
setTimeout(() => {
observer.next();
observer.complete();
})
});
我正在尝试对零超时进行简单订阅,以便在事件循环进入下一阶段后执行一些代码
import { Observable } from 'rxjs/Observable';
const render = () => {
...
return Observable.create(observer =>
setTimeout(() => {
observer.next();
observer.complete();
})
);
};
...
render().subscribe(() => { ... });
这导致
ERROR Error: unrecognized teardown 10 added to Subscription.
at Subscriber.Subscription.add (Subscription.js:144)
...
如果我将 Observable 替换为 Promise 方法,代码将按预期工作
const render = () => {
...
return new Promise(resolve =>
setTimeout(() => resolve())
);
};
...
render().then(() => { ... });
这是怎么回事?
当 RxJS 期望 undefined
时,您将返回 setTimeout
调用的结果,函数或具有 unsubscribe
函数的对象。
您可以通过在箭头函数中添加大括号来解决问题:
return Observable.create(observer => {
setTimeout(() => {
observer.next();
observer.complete();
})
});