gpt4 book ai didi

javascript - 如何将外部 EventSource 作为 AngularJS 服务进行处理?

转载 作者:行者123 更新时间:2023-11-28 09:25:55 25 4
gpt4 key购买 nike

我希望我的 Controller 能够订阅外部事件源,我通常会这样定义:

var source = new EventSource('http://someURL.com/foo');
source.addEventListener('bar', handler, false);

现在假设我正在使用的 API 只有一个正确的事件,但该事件会根据实际事件的情况为您提供不同的字符串。所以我的处理程序看起来像这样:

var handler = function(data) {
switch(data.cmd) {
case 'alpha' : doSomething(); break;
case 'beta' : doSomethingElse(); break;
case 'cappa' : doAnotherThing(); break;
}
}

我知道这很不幸,但这就是它的实现方式。我想要的是能够公开一个有意义的服务 API,这样在我的 Controller 中我就能够单独订阅每种类型的事件,并订阅一次或重复,以及取消订阅。

这有道理吗?有没有更好的方法可以使用 $q API 来执行此操作?如果没有,我该如何将异步事件映射到 AngularJS 服务 API?

最佳答案

您可以为每种消息类型注册一个监听器。

source.addEventListener('alpha', function(e) {
doSomething();
}, false);

source.addEventListener('beta', function(e) {
doSomethingElse();
}, false);

关于javascript - 如何将外部 EventSource 作为 AngularJS 服务进行处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14406683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com