2017-02-02 1 views
-3

Einfaches BeispielExtJs Versprechen Umfang arbeiten nicht

console.log(this); 
    new Ext.Promise(function(resolve, reject){ 
     resolve(123); 
    }).then(
     function(v){ 
      console.log(v); 
      console.log(this); 
     }, 
     function(){}, 
     function(){}, 
     this 
    ); 

Ergebnis ist:

constructor {compDomain: constructor, type: "patient", eventbus: constructor, $observableInitialized: true, hasListeners: HasListeners…} 
123 
Window {speechSynthesis: SpeechSynthesis, caches: CacheStorage, localStorage: Storage, sessionStorage: Storage, webkitStorageInfo: DeprecatedStorageInfo…} 

Warum letzte Parameter der 'dann' Funktion nicht funktioniert?

+1

Was erwarten Sie? Wie ich sehe, ist es korrekt. .then() hat nur 2 Argumente: okcallback und errorcallback. – Jorgeblom

+0

Lesen Sie die [Dokumentation der Versprechen.] (Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then). Wie bereits erwähnt, hat '.then()' zwei Funktionen als Argumente. –

Antwort

1

Ext.Promise wird standardmäßig auf die native Implementierung gesetzt. Um die erweiterten Ext-Versprechen zu erhalten, müssen Sie eine Instanz von Ext.Deferred erstellen:

+0

Vielen Dank! Es funktioniert! – user2921406