• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Object.observe

0 głosów
53 wizyt
pytanie zadane 9 lipca 2018 w JavaScript, jQuery, AJAX przez cepekLP Nowicjusz (120 p.)

Niestety w aktualnej wersji Node 8.x nie działa funkcja Object.observe()

Moje pytanie brzmi: jak można ją zamienić?

Poniżej wklejam kod z wykorzystaniem tej funkcji, kod pochodzi z książki "Internet rzeczy: Budowa sieci z wykorzystaniem technologi webowych i Raspberry Pi"

Z góry dziękuję za pomoc!!!

var resources = require('./../../resources/model');

var actuator, interval;
var model = resources.pi.actuators.leds['1'];
var pluginName = model.name;
var localParams = {'simulate': false, 'frequency': 2000};

exports.start = function (params) {
  localParams = params;
  observe(model); //#A

  if (localParams.simulate) {
    simulate();
  } else {
    connectHardware();
  }
};

exports.stop = function () {
  if (localParams.simulate) {
    clearInterval(interval);
  } else {
    actuator.unexport();
  }
  console.info('%s plugin stopped!', pluginName);
};

function observe(what) {
  Object.observe(what, function (changes) {
    console.info('Change detected by plugin for %s...', pluginName);
    switchOnOff(model.value); //#B
  });
};

function switchOnOff(value) {
  if (!localParams.simulate) {
    actuator.write(value === true ? 1 : 0, function () { //#C
      console.info('Changed value of %s to %s', pluginName, value);
    });
  }
};

function connectHardware() {
  var Gpio = require('onoff').Gpio;
  actuator = new Gpio(model.gpio, 'out'); //#D
  console.info('Hardware %s actuator started!', pluginName);
};

function simulate() {
  interval = setInterval(function () {
    // Switch value on a regular basis
    if (model.value) {
      model.value = false;
    } else {
      model.value = true;
    }
  }, localParams.frequency);
  console.info('Simulated %s actuator started!', pluginName);
};

//#A Observe the model for the LEDs
//#B Listen for model changes, on changes call switchOnOff
//#C Change the LED state by changing the GPIO state
//#D Connect the GPIO in write (output) mode

 

komentarz 9 lipca 2018 przez Comandeer Mentor (462,240 p.)
Dziwne, że się to pojawiło w jakiejkolwiek książce, bo nigdy nie było to częścią standardu ECMAScript…
komentarz 9 lipca 2018 przez cepekLP Nowicjusz (120 p.)
kod został napisany na wersję Node 4.x  i na nim by działał

1 odpowiedź

+1 głos
odpowiedź 9 lipca 2018 przez ProgramistaStepek Nałogowiec (27,220 p.)

Sprawdź Proxy

Podobne pytania

0 głosów
1 odpowiedź 70 wizyt
pytanie zadane 27 października 2017 w C i C++ przez Dawid Kruk Nowicjusz (170 p.)
0 głosów
0 odpowiedzi 36 wizyt
0 głosów
2 odpowiedzi 135 wizyt
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

66,503 zapytań

113,269 odpowiedzi

239,876 komentarzy

46,641 pasjonatów

Przeglądających: 272
Pasjonatów: 9 Gości: 263

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...