Ich versuche, 2 Versprechen zu verwenden, hängt das zweite Versprechen von der ersten. Und ein 3 Versprechen hängt von beiden Versprechen ab. Aber als erstes Versprechen ausfällt bekomme ich diesen Fehler in der zweiten Versprechen:Nicht in der Lage, Versprechen Versagen innerhalb anderer Versprechen zu behandeln
UnhandledPromiseRejectionWarning: Unbehandelte Versprechen Ablehnung (Ablehnung ID: 2): Typeerror: kann Eigenschaft ‚Name‘ von null
Dies ist mein Code lesen:
var Asset = require('../models/index').Asset;
var Price = require('../models/index').Price;
var currency = req.params.currency;
var values = {
where: { slugify_url: currency },
};
// get asset information
var promisse_asset = Asset.findOne(values);
// get prices information on this asset
var promisse_prices = promisse_asset.then(function(asset) {
console.log(asset); // outputs null
// some processing
if (!!asset) {
...
});
return Promise.all([promisse_asset, promisse_prices]).then(function([asset, results]) {
...
Wie kann ich das beheben? Wie kann ich damit umgehen, wenn ich ein Asset in meiner Datenbank nicht finde?
Sie scheinen einfach ein 'catch' (oder zweites' then' Argument) zu verpassen. Ohne es, Sie erhalten das _ "unbehandelt Versprechen Ablehnung" _ Fehler – Phil
@Phil Ich legte einen Haken nach dem ersten Versprechen, aber es scheint, dass es nicht in den Catch-Zustand eintritt. Wie soll ich das machen? –
Ah, so löst sich das erste Versprechen erfolgreich, nur mit einem "Null" -Wert. Sie sollten in diesem Fall einen Fehler ausgeben, damit das Versprechen fehlschlägt. Das müsste man in dem Versprechen "Promise.all" erwischen. – Phil