在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C++/ 通過服務(wù)和其它包交互
調(diào)試
初始文件
作用域設(shè)置、作用域和作用域描述符
在Atom中移動
在Atom背后
Atom中的包
為什么選擇Atom?
從Textmate中轉(zhuǎn)換
小結(jié)
新手入門
折疊
代碼段
Hacking Atom
基本的自定義
Atom中的序列化
文本處理包
字數(shù)統(tǒng)計包
所需工具
維護你的包
Atom基礎(chǔ)
深入鍵表(keymap)
配置API
使用Atom
自動補全
面板
在Atom中寫作
文本選擇
創(chuàng)建主題
圖標
小結(jié)
開發(fā)Node模塊
編輯和刪除文本
安裝Atom
通過服務(wù)和其它包交互
小結(jié)
編寫 spec
語法
Atom中的版本控制
查找和替換

通過服務(wù)和其它包交互

Atom包可以通過叫做服務(wù)的帶有版本控制的APi,和其它包進行交互。在你的package.json文件中指定一個或者多個版本號來提供服務(wù),每個版本號都要帶有一個包的主模塊中的方法。

{
  "providedServices": {
    "my-service": {
      "description": "Does a useful thing",
      "versions": {
        "1.2.3": "provideMyServiceV1",
        "2.3.4": "provideMyServiceV2",
      }
    }
  }
}

在你的包的主模塊中實現(xiàn)上面的方法。這些方法會在一個包被激活的任何時候調(diào)用,它們會使用它們的通信服務(wù)。它們應(yīng)該返回實現(xiàn)了服務(wù)API的一個值。

module.exports =
  activate: -> # ...

  provideMyServiceV1: ->
    adaptToLegacyAPI(myService)

  provideMyServiceV2: ->
    myService

與之相似,指定一個或多個版本范圍來使用一個服務(wù),每個都帶有一個包的主模塊中的方法。

{
  "consumedServices": {
    "another-service": {
      "versions": {
        "^1.2.3": "consumeAnotherServiceV1",
        ">=2.3.4 <2.5": "consumeAnotherServiceV2",
      }
    }
  }
}

這些方法會在一個包被激活的任何時候調(diào)用,它們會提供它們的通信服務(wù)。它們會接受到一個通信對象作為一個參數(shù)。你通常需要在包提供的服務(wù)失效的時間中,進行同種類型的清除工作。從你使用服務(wù)的方法中返回一個Disposable來完成它:

{Disposable} = require 'atom'

module.exports =
  activate: -> # ...

  consumeAnotherServiceV1: (service) ->
    useService(adaptServiceFromLegacyAPI(service))
    new Disposable -> stopUsingService(service)

  consumeAnotherServiceV2: (service) ->
    useService(service)
    new Disposable -> stopUsingService(service)
上一篇:配置API下一篇:小結(jié)