W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Atom包可以通過(guò)叫做服務(wù)的帶有版本控制的APi,和其它包進(jìn)行交互。在你的package.json
文件中指定一個(gè)或者多個(gè)版本號(hào)來(lái)提供服務(wù),每個(gè)版本號(hào)都要帶有一個(gè)包的主模塊中的方法。
{
"providedServices": {
"my-service": {
"description": "Does a useful thing",
"versions": {
"1.2.3": "provideMyServiceV1",
"2.3.4": "provideMyServiceV2",
}
}
}
}
在你的包的主模塊中實(shí)現(xiàn)上面的方法。這些方法會(huì)在一個(gè)包被激活的任何時(shí)候調(diào)用,它們會(huì)使用它們的通信服務(wù)。它們應(yīng)該返回實(shí)現(xiàn)了服務(wù)API的一個(gè)值。
module.exports =
activate: -> # ...
provideMyServiceV1: ->
adaptToLegacyAPI(myService)
provideMyServiceV2: ->
myService
與之相似,指定一個(gè)或多個(gè)版本范圍來(lái)使用一個(gè)服務(wù),每個(gè)都帶有一個(gè)包的主模塊中的方法。
{
"consumedServices": {
"another-service": {
"versions": {
"^1.2.3": "consumeAnotherServiceV1",
">=2.3.4 <2.5": "consumeAnotherServiceV2",
}
}
}
}
這些方法會(huì)在一個(gè)包被激活的任何時(shí)候調(diào)用,它們會(huì)提供它們的通信服務(wù)。它們會(huì)接受到一個(gè)通信對(duì)象作為一個(gè)參數(shù)。你通常需要在包提供的服務(wù)失效的時(shí)間中,進(jìn)行同種類(lèi)型的清除工作。從你使用服務(wù)的方法中返回一個(gè)Disposable
來(lái)完成它:
{Disposable} = require 'atom'
module.exports =
activate: -> # ...
consumeAnotherServiceV1: (service) ->
useService(adaptServiceFromLegacyAPI(service))
new Disposable -> stopUsingService(service)
consumeAnotherServiceV2: (service) ->
useService(service)
new Disposable -> stopUsingService(service)
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: