ES6 y alcance variable dentro de una promesa

No estoy seguro de lo que me estoy perdiendo aquí.

Necesito obtener la salida dedata dentrothis.contact. En este momento, estoy usando una variable de clase estática, pero parece sucio tener que hacer eso.

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
    });
  }
}

Normalmente crearía unvar contact dentro deactivate() función (funciona en la consola de Chrome) pero esto no parece funcionar en ES6.

Consola de Chrome:

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"}

Respuestas a la pregunta(2)

Su respuesta a la pregunta