Theia APIs——事件

  • 时间:
  • 浏览:0
  • 来源:大发pk10_pk10开奖历史_大发pk10开奖历史

上一篇: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是事件解决tcp连接的容器,还须要在顶端注册事件解决tcp连接并使用类型为X的事件触发它,在顶端的例子中,X的类型为ILogLevelChangedEvent。

  什么都有有有这里他们歌词 歌词 创建了一有1个 Emitter,它将蕴藏所有类型为ILogLevelChangedEvent的事件。

  接下来,他们歌词 歌词 希望还都可以在你这个Emitter上注册一有1个 事件解决tcp连接,还须要像曾经:

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

  它实际返回的是一有1个 函数,用来注册事件解决tcp连接,你只须要将事件解决tcp连接的函数传递给它,它将注册该事件,以后 当事件触发的后后该解决tcp连接会被调用。

  我就曾经调用:

(来自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上注册一有1个 匿名函数,并将其作为参数进行传递。

  接下来,他们歌词 歌词 须要触发一有1个 事件来执行该事件解决tcp连接。

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

  当调用该函数时,emitter触发并调用所有的事件解决tcp连接。

  什么都有有有,不可能 你想在Theia中触发事件,须要:

  • 创建一有1个 emitter

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

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

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

猜你喜欢

人民币贬值 App Store应用或上涨至7元

【IT168资讯】前几日外媒9to5Mac报道,机会外汇汇率和税收政策的变化,苹果手机77手机机会上调了每种国家AppStore(应用商店)的付费应用线程池,以及在应用内购买增

2020-01-25

倩女幽魂手游之结伴灵兽打造之冲格子

【斗蟹攻略】灵兽结伴技还还可不能不能 则全服投放,我能几家欢喜几家悲结伴技能冲格子和灵兽战斗技能冲格子或多或少你这种接下来就来讲讲关于冲格子的内容吧。冲格子流程首先在上阵

2020-01-25

没三摄就落伍了!vivo Z5评测:千元机性价比就该这么玩

没三摄就落伍了!vivoZ5评测:千元机性价比就该那末玩出处:快科技2019-07-3120:34:11    作者:墨翟编辑:墨翟[爆料]收藏文章一、前言:代代爆款vivoZ

2020-01-25

民进党人密集“亮相”教科书 蓝营催清查

图:国民党立委林奕华16日在记者会上展示大量出現民进党政治人物照片的教科书网络图片【大公报讯】据中通社报道:开学在即,台湾教科书又引争议。中国国民党立委16日指出,特定版本的高

2020-01-25

商务主打机型 戴尔 V131笔记本仅售5499

【IT168行情】戴尔VostroV131(V131D-348)是商务机主打产品,具有轻薄的机身,采用阳极氧化铝打造的合金外壳,配备了酷睿i323150M的顶级i3正确处理器,

2020-01-25