Erstellen Sie ein (ES6) Versprechen, ohne es zu lösen

Verwendung von ES6 verspricht,, wie erstelle ich ein Versprechen ohne Definition der Logik für die Lösung? Hier ist ein einfaches Beispiel (einige Typoskript):

var promises = {};
function waitFor(key: string): Promise<any> {
  if (key in promises) {
    return promises[key];
  }
  var promise = new Promise(resolve => {
    //But I don't want to try resolving anything here :(
  });

  promises[key] = promise;
  return promise;
}

function resolveWith(key: string, value: any): void {
  promises[key].resolve(value); //Not valid :(
}

Es ist leicht getan, mit anderen Versprechen Bibliotheken. JQuery Beispiel:

var deferreds = {};
function waitFor(key: string): Promise<any> {
  if (key in promises) {
    return deferreds[key].promise();
  }
  var def = $.Deferred();    
  deferreds[key] = def;
  return def.promise();
}

function resolveWith(key: string, value: any): void {
  deferreds[key].resolve(value);
}

Nur so kann ich sehen, dies zu tun wäre, um zu speichern die lösen-Funktion entfernt irgendwo in die Versprechen der Testamentsvollstrecker aber das scheint chaotisch, und ich bin nicht sicher, es ist festgelegt, Wann genau diese Funktion ausgeführt wird - wird es immer ausgeführt, unmittelbar auf dem Bau?

Dank.

InformationsquelleAutor der Frage Barguast | 2015-06-26

Schreibe einen Kommentar