如果你使用JS,文档工作得很好。但是在Angular 的情况下,我更喜欢处理可观察的而不是承诺。问题是这种承诺有一个处理程序。我尝试了下面列出的许多方法,但似乎都不起作用。
第一个
有人知道如何将这种事件转换为Observable
吗?
回答总是这样:
function () {
var self = this,
args = arguments;
return new Promise(function (resolve, reject) {
var gen = fn.apply(self, args);
function _next(value) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
}
function _throw(err) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
}
_next(undefined);
});
}
2条答案
按热度按时间ct2axkht1#
您必须使用
new Observable
自己创建一个Observable
。在回调中,我们将
listen
传递给事件,并将每个事件传递给subscriber.next(v)
。当
Observable
被取消订阅时,我们还想调用unlisten
来清理事件监听器。我们可以通过返回unlisten
来完成这一点。回调返回的函数将在Observable
被取消订阅时被调用。hfsqlsce2#
感谢@Tobias S.,我能够创建这两个函数,并在我所有的服务中重用它们。