2017-01-02 1 views

Antwort

1

Es hängt von Ihrem Anwendungsfall ab. Entweder Sie mehrere haben catch Anrufe verschachtelt oder Sie nur eine haben:

myModelName.findOne({blah: blah}) 
    .then(function(user) { 
    if(user) { 
     return anotherModel.create({blah blah params}); 
    } 
    return user; 
    }) 
    .catch(function(error){ 
    response back with error; 
    }); 

Sie können auch direkt einen then Anruf nach create befestigen. Aber es ist wichtig, dass Sie das Versprechen zurückgeben. Sonst kann es nicht eingefangen werden.

+0

so zurück, bevor Funktion erstellen einen Fehler zurück, wenn ein Fehler auftritt w hich ist jetzt verfügbar für .catch und Wenn ich nicht die Rückkehr stelle kann ich eine .then und fang mit dieser create-Funktion zu fangen. –

+0

Der Code gibt ein Versprechen zurück, dass Sie mit 'then' und' catch's kombinieren können, wie Sie möchten. Es spielt keine Rolle, ob es innerhalb eines anderen 'then' Anrufs ist oder nicht. Aber es ist wichtig, das Versprechen zurückzugeben, damit die Versprechenskette fortfahren kann. – str

Verwandte Themen