Ich versuche eine Drittanbieter-Bibliothek zu promisifizieren, die das callback(err, data)
-Muster nicht verwendet. Stattdessen geben sie immer callback(data)
und throw
bei Fehlern zurück.
Was ist eine gute Möglichkeit, ein solches Verhalten mit Versprechen zu umhüllen und es dennoch in Ordnung zu halten und den geworfenen Fehler zu fangen? Die catch-Klausel wird nicht ausgelöst und die Anwendung stürzt ab.
Ab Bluebird 2.1 können Sie nun promisifyAll
mit einem benutzerdefinierten Promistification-Handler anpassen:
Wenn die ursprüngliche Methode asynchron auslöst, gibt es wirklich keine Möglichkeit, sie in einer Domäne zu umhüllen, obwohl ich noch nie eine Bibliothek gesehen habe, die das schlecht funktioniert.