Il aide les programmeurs (à l'arrière et à l'avant) pour éviter la complexité des systèmes de gestion des états traditionnels tels que React Redux et la bibliothèque de modèles de programmation réactive comme RXJS. Il est léger et facile à utiliser la bibliothèque contient une fonction centrale et un crochet pour réagir. En l'utilisant, nous pouvons nous abonner à vaste majorité du type de données telles que primitif, complexe, promesses et fonctionner en tant que service et recevoir toutes les modifications par paramètre particulier (abonnement paramétrique). Nous n'avons même pas besoin de contrôler le processus d'abonnement à unbuscript en réaction avec un crochet simple, il fait automatiquement tout le processus.
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" ) ; Utilisation du nom des méthodes avancées intégré [Server] Enveloppe Axios pour la récupération des données de HTTP Server et Localforge pour les données de cache. L'échantillon suivant utilise la classe [serveur] comme entrée de l'assurance. Vous pouvez utiliser votre propre bibliothèque XHR au lieu de cela.
Si http: //myserver/contacts/getcontact.ctrl http repos service existe.
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 ) ) ; L'état actuel d'un service est des états observables peuvent être l'un des ["start", "chargement", "inactif"]
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
L'assureur ASN peut utiliser un argument du constructeur avec un mappeur déférent mais le même chargeur. Ceci est utile pour dériver un service à partir d'autres. Il est important si vous souhaitez réduire le nombre de services de complexité et augmenter la réutilisation du code.
const ser1 = new AsService ( [ 5 , 6 , 7 , 8 ] ) ;
const ser2 = new AsService ( ser1 , /*mapper*/ a => a . map ( b => b * 2 ) ) ; //=> [10,12,14,16] Vous pouvez créer un nouveau service dérivé d'un autre service à l'aide de l'opérateur MAP. Cet opérateur envoie à la fois des données et des paramètres à la fonction de mappeur. Les paramètres de mappel peuvent être plus que des paramètres de chargeur.
/*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 ) )Licence: MIT