Obecnie próbuję wprowadzić w życie moją własną obietnicę do użycia wewnątrz Angular 2. Jeśli I reject
obietnicy, dostanę Error: Uncaught (in promise): nope(…)
, ale tylko na pierwszej obietnicy do odrzucenia .Nieobowiązkowe odrzucenie obietnicy odrzucenia obietnicy w Angular 2
To jest Angular 2.0.0-rc.4
, ale zauważyłem to w innych zachowaniach. Moje pytanie brzmi: czy jest to błąd w moim rozumieniu obietnic, czy też jest to błąd, który należy zgłosić projektowi Angular?
Przykładowy kod:
import {Component} from '@angular/core';
import {bootstrap} from '@angular/platform-browser-dynamic'
@Component({
template: "TestComponent"
})
class TestComponent {
}
bootstrap(TestComponent, []);
let p = new Promise((resolve, reject) => {
console.log("create promise");
reject("nope");
});
console.log("setting up");
p.then(r => console.log("then: " + r));
p.catch(e => console.log("reject: " + e));
console.log("setup done");
Console (Google Chrome 51.0.2704.106, Linux 64 bit):
create promise
setting up
setup done
reject: nope
Angular 2 is running in the development mode. Call enableProdMode() to enable the production mode.
Unhandled Promise rejection: nope ; Zone: <root> ; Task: Promise.then ; Value: nope
Error: Uncaught (in promise): nope(…)
Czy używasz obietnicy es6 lub masz własną implementację? – Kliment
Implementacja to 'ZoneAwarePromise' z' zone.js', o ile wiem. Dlatego myślę, że jest to związane z Angular. –
Tytuł jest w pewien sposób mylący. "wdrożenie własnej obietnicy w Angular 2" jednoznacznie sugeruje, że istnieje implementacja obietnicy homebrew. – estus