Nicht sicher, was ich hier vermisse.ES6 und variabler Bereich innerhalb eines Versprechens
Ich brauche die Ausgabe von data
in this.contact
. Im Moment benutze ich eine statische Klassenvariable, aber es scheint dreckig zu sein, das zu tun.
export class contactEdit {
static t; // static class var
constructor() {
this.id = null;
this.contact = null;
contactEdit.t = this;
}
activate(id) {
this.id = id;
let contact = this.contact; // scoped version of class var
return dpd.contacts.get(id).then(function(data) {
console.log(data);
contactEdit.t.contact = data; // this works
contact = data; // this doesn't
});
}
}
Normalerweise würde ich ein var contact
in der activate()
Funktion erstellen (es funktioniert in der Chrome-Konsole), aber dies scheint nicht in ES6 zu arbeiten.
Chrome Konsole:
var c = null;
undefined
c;
null
dpd.contacts.get('a415fdc8f5a7184d').then(function(data) {
c = data;
});
Object {}fail: (n)then: (e,t)__proto__: Object
c;
Object {firstName: "John", lastName: "Doe", id: "a415fdc8f5a7184d"}
Haben Sie nicht nur wollen, 'this.contact = data;' statt 'Kontakt = Daten; '? – trincot
'statisches t;' ist nicht ES6. Verwenden Sie Typoskript oder etwas? – Bergi
Sie sollten Versprechensergebnisse sowieso nicht als Instanzeigenschaften speichern. Speichern Sie das Versprechen, wenn Sie müssen. – Bergi