Skip to content

Latest commit

 

History

History
75 lines (63 loc) · 1.58 KB

BajaScriptV2.md

File metadata and controls

75 lines (63 loc) · 1.58 KB

BajaScript V2

What is BajaScript

  • JavaScript data API
  • Interact with a Niagara station
    • Resolve and Subscribe
    • Database queries
    • Tags and Relations
  • Extensible
  • Not a UI framework

Resolve and Subscribe

var sub = new baja.Subscriber();

sub.attach('changed', function(prop) {
  if(prop.getName() === 'out') {
    console.log('changed: ' + this.get(prop));
  }
});

baja.Ord.make('station:|slot:/Ramp').get({ subscriber: sub});

Database Queries

...

Tags and Relations

...

Unit Database support

...

Promises

What is a Promise?

  • A unit of asynchronous work
  • Can be fulfilled or rejected
  • Bring try/catch/finally semantics to asynchronous code
  • Can be orchestrated / grouped together

visit bluebirdjs.com to get more about Promises

Example

Promise.join(
  baja.Ord.make('station:|slot:/Services').get(),
  baja.Ord.make('station:|slot:/Drivers').get()
).spread(function (services, drivers) {
  console.log('resolved both components');
  console.log(services.getNavOrd());
  console.log(drivers.getNavOrd());
});

try/catch/finally

Promise.try(function () {
  return baja.Ord.make('station:|slot:/Schwervices').get();
})
.catch(function (err) {
  console.log('failed to resolve Services: ' + err);
})
.finally(function () {
  console.log('this runs no matter what');
});

Offline support

...

RequireJS

require(['baja!'], function(baja) {
  baja.outln('now bajascript is running.');
});