Theia APIs——事件

  • 时间:
  • 浏览:0
  • 来源:大发快3_快3在线稳定计划_大发快3在线稳定计划

上一篇:Theia APIs——Preferences

事件

  Theia中的事件或许会让他感到困惑,希望本节能阐述清楚。

  来看下面的代码:

(来自logger-watcher.ts)

@injectable()
export class LoggerWatcher {

    getLoggerClient(): ILoggerClient {
        const emitter = this.onLogLevelChangedEmitter
        return {
            onLogLevelChanged(event: ILogLevelChangedEvent) {
                emitter.fire(event)
            }
        }
    }

    private onLogLevelChangedEmitter = new Emitter<ILogLevelChangedEvent>();

    get onLogLevelChanged(): Event<ILogLevelChangedEvent> {
        return this.onLogLevelChangedEmitter.event;
    }
}

  先来看看你什儿 行:

private onLogLevelChangedEmitter = new Emitter<ILogLevelChangedEvent>();

  首先,那此是Emitter

  Emitter是事件补救系统任务管理器的容器,都才能 在后边注册事件补救系统任务管理器并使用类型为X的事件触发它,在后边的例子中,X的类型为ILogLevelChangedEvent。

  就说 这里亲们儿创建了两个多 Emitter,它将饱含所有类型为ILogLevelChangedEvent的事件。

  接下来,亲们儿希望才能在你什儿 Emitter上注册两个多 事件补救系统任务管理器,都才能 像原先 :

get onLogLevelChanged(): Event<ILogLevelChangedEvent> {
        return this.onLogLevelChangedEmitter.event;
    }

  它实际返回的是两个多 函数,用来注册事件补救系统任务管理器,你只需要将事件补救系统任务管理器的函数传递给它,它将注册该事件,或者当事件触发的以前该补救系统任务管理器会被调用。

  让他原先 调用:

(来自logger.ts) 

/* Update the root logger log level if it changes in the backend. */
        loggerWatcher.onLogLevelChanged(event => {
            this.id.then(id => {
                if (id === this.rootLoggerId) {
                    this._logLevel = Promise.resolve(event.newLogLevel);
                }
            });
        });

  这将在emitter上注册两个多 匿名函数,并将其作为参数进行传递。

  接下来,亲们儿需要触发两个多 事件来执行该事件补救系统任务管理器。

onLogLevelChanged(event: ILogLevelChangedEvent) {
                emitter.fire(event)
            }

  当调用该函数时,emitter触发并调用所有的事件补救系统任务管理器。

  就说 ,肯能你想在Theia中触发事件,需要:

  • 创建两个多 emitter

  • 使用emitter.event函数注册事件

  • 使用emitter.fire(event)函数触发事件

原文地址:https://theia-ide.org/docs/events

猜你喜欢

我叫MT2女神特攻队通关阵容攻略 我叫MT2女神特攻队通关打法

您当前的位置:首页>游戏攻略>单机攻略>我叫MT2女神特攻队通关阵容攻略我叫MT2女神特攻队通关打法更新时间:2017-06-2307:21:13来源:斗蟹游

2020-01-23

Lyft发布无人驾驶汽车开发数据库,包括5.5万张3D高清图像

IT之家7月29日消息为了有有助于于无人驾驶汽车的发展,Lyft今天发布了一组无人驾驶汽车的开发数据,该公司称这以数据库是这类于数据中规模最为庞大的。它以现有的nuScenes

2020-01-23

隐形守护者全章节全结局怎么达成 全结局达成攻略

隐形守护者全章节全结局要为何达成,每个章节的完全剧情要为何解锁呢,这里亲戚亲戚朋友来看下完全章节剧情的解锁措施 。序章1、选【保持沉默】2、选【都可能性过去了,问这麼多干嘛?

2020-01-23

[区块链] 拜占庭将军问题 [BFT]

背景:拜占庭将军问提什么都人们机会听过,但别问我具体是那此意思。非要 究竟那此是拜占庭将军问提呢?本文从最通俗的故事讲起,并对该问提进行抽象,并告诉朋友拜占庭将军问提为那此在

2020-01-23

传WP9将是智能机和平板通吃系统,2015年发布

微软正忙着在明年推出WindowsPhoneBule(WP8.1)大更新,但现在已传来了有关2015年WindowsPhone9的消息,据称WP9将是并肩支持智能机和平板电脑的

2020-01-23