Nesneleri, bu nedenle değişkenin her bir örneği benzersiz olması gerekir.JavaScript İhracat -. Değişkenler somutlaştırın/Evimde 5 tonları var ben devlete izleyebilmeniz için bir değişken eklemek için <code>homebridge-wink3</code> kodunu değiştirmek çalışıyorum
shade.js
dosyasında;
exports.default = ({ Characteristic, Service }) => {
return {
type: "shade",
group: "shades",
services: [{
service: Service.WindowCovering,
characteristics: [{
characteristic: Characteristic.TargetPosition,
get: (state, desired_state) => desired_state.position * 100,
ben değiştirmek istiyorum get
(ve set
başka yerde kodunda) bu yüzden devlet izlemek için yerel bir değişken lastState
kullanır.
get: (state, desired_state) => {
if (desired_state.position != null) {
lastState = desired_state.position * 100;
}
else if (lastState != undefined) {
desired_state.position = lastState/100;
}
return lastState;
ben kod gölgede başına bireysel değişkenler (nesne örneği) korumak için nasıl çalışmaya çalışıyorum saat geçirdim, ama her zaman lastState
değişkenin aynı örneğini paylaşımı gibi görünüyor.
Burada ne yapmam gerekiyor? Kod için https://github.com/sibartlett/homebridge-wink3/blob/master/src/devices/shade.js adresine bakın.
LastState değişkenini nerede tanımladınız? –
@ JorgeFuentesGonzález Henüz bir yer yok. Benim sorum bu soruyor. Nerede ve nasıl ilan edeceğim? Kod, ES7'de yazılmıştır ve orijinal 'exports.default', bir grup parametreyi (tür, grup, hizmetler []) döndürmek için görüntülenir. 'Get' parametresinin/fonksiyonunun' set' parametresi/fonksiyonu tarafından ayarlanabilen bir yerel değişkene (benim örneğimde; 'lastState') erişimi olması gerekir. – mriksman
Ben bir homebridge-wink3' kullanıcısı değilim, ama yardım etmek için elimden geleni yaparım. Sorun şu ki, şu ana kadar ne denediğini bilmiyorum ve saatlerce denediğin aynı şeyi yapmaya çalışan zaman kaybetmek istemiyorum. Bunun hakkında düşünmem genellikle StackOverflow üyelerinin geri kalanının ne düşündüğünü, yani, şimdiye kadar ne denediniz? –