2013-08-01 10 views
7

Ich habe gerade diese video einer aktuellen Podiumsdiskussion mit den Ember-Core-Framework-Entwickler beobachtet.So verwenden Sie Ember.RSVP.onerror, um Ausnahmen von abgelehnten Versprechungen ohne Fehlerhandler zu melden

In dem Video werden die Panel-Mitglieder gebeten, einen allgemeinen Debugging-Tipp zu teilen - Tom Dale ruft den RSVP-onerror-Handler auf, der es ermöglicht, Ausnahmen, die sonst in Versprechungen ohne Ablehnungs-Handler verschluckt worden wären, global zu melden.

Ich denke, dieser Handler wird eine (etwas verwirrte) Frage beantworten, die ich anderswo auf Stack Overflow gestellt habe. Weiß jemand, wie man diesen Handler verwendet oder wo die Dokumente dafür sein könnten?

acceptable promise pattern for 'LOUD' errors?

Antwort

4

Die docs sind hier:

Dies wurde etwa im September 2013 hinzugefügt

+4

"Verwendung von RSVP.configure ('onerror', yourCustomFunction); ist veraltet zugunsten von RSVP.on" https://github.com/tildeio/rsvp.js#error-handling – rjhilgefort

+0

Was ist der beste Ort zu mach das? –

+0

@torazaburo Sie können es in einem Initialisierer tun. – rjhilgefort

3

Hope this alle anderen Menschen hilft, mit Ember Fehler und Debugging mit transpiled Ember Code zu wollen.

Zuerst installieren: https://github.com/evanw/node-source-map-support

Dann -

Vorlage:

{{#if debug}} 
    <script src="/browser-source-map-support.js"></script> 
    <script>sourceMapSupport.install();</script> 
{{/if}} 
<script src="/bundle-{{ version }}.js"></script> 

Script:

Ember.onerror = function (e) { 
    if(debug) { 
    console.log(window.sourceMapSupport.getErrorSource(e)); 
    console.log(e.stack); 
    } 
    // log error to server 
}; 

Ember.RSVP.configure('onerror', function (e) { 
    if(debug) { 
    console.log(window.sourceMapSupport.getErrorSource(e)); 
    console.log(e.stack); 
    } 
    // log error to server 
}); 

Debuggen ist einfacher und schneller.