2016-05-12 4 views
0

Ich hätte gerne einen future Wert, der mit Wert gelöst werden kann, ausstehend oder in ähnlicher Weise wie scala Zukunft abgelehnt wird.zukünftiger Wert mit es6 verspricht

var username = new Promise(); 
username.then(x => console.log(x)); 

// half an hour later, triggered by user click or by ajax, or by timer, or 
username.resolve('john'); 

Ist da etwas eingebaut oder müsste ich das Fahrrad neu erfinden?

+0

diese Gefunden: https://github.com/seangenabe/es6-deferred/blob/master/deferred .js – Alex

+0

Also hast du deine eigene Frage 8 Minuten nachdem du sie gepostet hast beantwortet? – trincot

Antwort

1

Deferred.js bietet, dass bei https://github.com/seangenabe/es6-deferred/blob/master/deferred.js

"use strict"; 

var Promise = global.Promise || require('es6-promise').Promise; 

var Deferred = function() { 
    this.promise = new Promise((function(resolve, reject) { 
    this.resolve = resolve; 
    this.reject = reject; 
    }).bind(this)); 

    this.then = this.promise.then.bind(this.promise); 
    this.catch = this.promise.catch.bind(this.promise); 
}; 

module.exports = Deferred; 

Anwendungsbeispiel:

var d = new Deferred(); 
d.then(x => console.log(x)); 
d.resolve('boo'); 
+0

Versprechen haben diese Fähigkeit, wenn Sie die Auflösungsfunktion irgendwo speichern. – Paarth