Nicht erfasste (bei Versprechen)

Ich weiß, das problem ist üblich. Ich bin mit es6 verspricht, und ich habe mehrere Ebenen.
Zur Laufzeit, wenn ich nicht fangen ein Versprechen, ich habe Uncaught (in promise) in meiner Konsole. Aber die Tatsache ist, dass ich es fangen unteren in meinem code.

Schnell Vereinfachtes Beispiel :

LoginApi.js

var loginDaoCall = loginDao.login(username, password);

loginDaoCall
    .then(function (res) {
        store.dispatch(loginSuccess());
        log.log("[loginApi.login] END");
    })
    .catch(function (err) {
        store.dispatch(loginFail());
        errorUtils.dispatchErrorWithTimeout(errorLogin);
        log.log(err);
    });

return loginDaoCall;

loginContainer.js

loginApi.login(user, password).then(() => {
    //Change here instead of in render so the user can go back to login page
    this.props.history.push(baseUrlRouter + "test");
}); //<- Error here cause I don't CATCH the promise, but I do catch it in my loginapi.js

Ich weiß, dass ich fangen konnte nichts tun, aber eh. Ich könnte auch tun, die Geschichte schieben, was in meinem API-Schicht, aber es ist nicht seine Verantwortung.

Wie kann ich den Fehler vermeiden, in meine Konsole? Gibt es eine Möglichkeit? Ich bin sogar denken, es zu verlassen, wie diese.

  • ist es ein Fehler oder eine Warnung?
  • Es wird gezeigt, wie ein Fehler, aber es ist eine Warnung, wie es nicht etwas zu brechen. Ich hasse es, Warnung/Fehler in meiner Konsole nicht von mir kommen. Es ist nicht gerechtfertigt, da es nicht eine schlechte Praxis imho
  • vielleicht ist Ihr eigenen code? errorUtils.dispatchErrorWithTimeout(errorLogin); log.log(err);
  • Nein, die Sache ist die, es ist eine "nicht behandelte Ablehnung", wenn ich fangen Sie das abgelehnt Versprechen in meinem loginContainer, ich habe auch keine Fehlermeldung. Es ist eine Konsole.kommen die Fehler von es6-promises.
  • und es gibt keine Fehler geworfen in Ihren Fang? welcher Fehler ist es?
  • Ja, es ist ein Fehler, aber seine spezifischen meinem code. Meine loginDao ablehnen, etwas (ein Objekt tatsächlich), wenn die Authentifizierung fehlschlägt. edit :Uncaught (bei Versprechen) Object {code: -32001, Meldung: "Invalid login/password"}

InformationsquelleAutor Nevosis | 2017-06-21
Schreibe einen Kommentar