React Redux 및 RXJ와 같은 Reactive 프로그래밍 패턴 라이브러리와 같은 전통적인 주 관리 시스템의 복잡성을 피할 수 있도록 프로그래머 (뒷면 및 프론트 엔드)가 도움이됩니다. 가볍고 사용하기 쉬운 라이브러리에는 하나의 핵심 기능과 반응 후크가 포함되어 있습니다. 이를 사용함으로써 우리는 원시, 복잡한, 약속 및 서비스와 같은 대부분의 데이터 유형을 서비스로 구독하고 특정 매개 변수 (파라 메트릭 구독)별로 모든 변경 사항을받을 수 있습니다. 우리는 간단한 후크로 React에서 구독-유추 구독 프로세스를 제어 할 필요조차 없습니다. 모든 프로세스를 자동으로 수행합니다.
npm i @ barteh/as-service --save import { AsService , Server } from "@barteh/as-service" ; var srv1 = new AsService ( 5 ) ; // number as service
srv1 . Observable ( )
. subscribe ( a => console . log ( "ser1 data via observable is:" , a ) ) ;
srv1 . load ( ) . then ( a => console . log ( "ser1 data via promis:" , a ) ) ; var srv2 = new AsService ( { x : 9 } ) ; // object as service
srv2 . Observable ( )
. subscribe ( a => console . log ( "ser2 data via observable is:" , a ) ) ;
srv2 . load ( ) . then ( a => console . log ( "ser2 data via promis:" , a ) ) ; var srv3 = new AsService ( param => param * 3 ) ; // function as service
srv3 . Observable ( 2 ) //parametric observe
. subscribe ( a => console . log ( "ser3 data via observable is:" , a ) ) ;
//passing (Number) 2 as parameter
srv3 . load ( 2 ) . then ( a => console . log ( "ser3 data via promis:" , a ) ) ; var ser4 = new AsService ( param => new Promise ( ( res , rej ) => res ( `im promise with parameter: ${ param } ` ) ) ) ;
ser4 . Observable ( "myparam" )
. subscribe ( a => console . log ( "srv4: " , a ) ) ;
ser4 . load ( "myparam" ) ; 내장 된 고급 메소드 이름 [Server]을 사용하여 HTTP Server의 검색 데이터 및 Cache 데이터의 LocalForge에 대한 Axios를 랩핑합니다. 다음 샘플은 클래스 [서버]를 Asservice의 입력으로 사용합니다. 이 대신 자신의 XHR 라이브러리를 사용할 수 있습니다.
http : //myserver/contacts/getcontact.ctrl http REST Service가 존재하는 경우.
import { AsService , Server } from "@barteh/as-service"
var controller1 = ( x , y ) => Server . controller ( "contacts" , "getcontact" , { name : x , lname : y } ) ;
var srv5 = new AsService ( controller1 ) ;
srv5 . Observable ( "Ahad" , "Rafat" )
. subscribe ( a => console . log ( "srv5:" , a ) ) ; 서비스의 현재 상태는 관찰 가능한 상태입니다.
var srv6 = new AsService ( 8 ) ;
srv6 . StateObservable ( 77 ) . subscribe ( a => console . log ( "current state is: " , a ) )
srv6 . load ( 77 ) ; > ser1 data via observable is: 5
> ser2 data via observable is: { x: 9 }
> ser3 data via observable is: 6
> srv4: im promise with parameter: myparam
ASN Asservice는 연기가 있지만 동일한 로더가있는 생성자의 인수를 사용할 수 있습니다. 이것은 다른 사람으로부터 서비스를 파생하는 데 유용합니다. 서비스 복잡성 수를 줄이고 코드의 재사용 성을 높이려면 중요합니다.
const ser1 = new AsService ( [ 5 , 6 , 7 , 8 ] ) ;
const ser2 = new AsService ( ser1 , /*mapper*/ a => a . map ( b => b * 2 ) ) ; //=> [10,12,14,16] MAP 운영자를 사용하여 다른 서비스에서 파생 된 새 서비스를 만들 수 있습니다. 이 연산자는 데이터와 매개 변수를 모두 맵퍼 기능으로 보냅니다. 맵퍼 매개 변수는 로더 매개 변수 이상일 수 있습니다.
/*map(data,...params)*/
const ser1 = new AsService ( ( x , y ) => x + y ) ;
const ser2 = ser1 . map ( ( data , x , y , z ) => data + z ) ;
ser1 . load ( /*x*/ 1 , /*y*/ , 2 , /*z*/ , 3 )
. then ( a => console . log ( a ) ) ;
// output
// > 6
const ser1 = new AsService ( [ 5 , 6 , 7 , 8 ] ) ;
const ser2 = ser1 . map ( a => a . filter ( b => b < 7 ) ) ; // ==> [5,6] npm test
npm run build
var { AsService } = require ( "@barteh/as-service" ) ;
var t = new AsService ( 8 ) ;
t . Observable ( )
. subscribe ( a => console . log ( a ) )라이센스 : MIT