Zunächst einmal JSON.parse
ist nicht eine asynchrone Funktion. Also, versuchen Sie nicht Promisify es.
Weil ich eine Kette von Versprechungen schaffen will, wo JSON.parse an der Spitze
Dann
steht, erstellen Sie einfach ein Versprechen, mit dem geparsten JSON-Objekt aufgelöst, wie diese
Promise.resolve(JSON.parse(data))
.then(...)
Nun zu Ihrer eigentlichen Frage, werden Sie den Fehler erhalten,
Unhandled rejection Error: object
weil, wenn Ihre Kette von Versprechen abgelehnt wird, Sie es nicht behandeln. Also, vergessen Sie nicht, einen catch-Handler zu befestigen, wie diese
Promise.resolve(JSON.parse(data))
.then(...)
.catch(...)
LESEN Es gibt ein Problem mit dem Ansatz, den ich hier gezeigt habe, wie von Bergi wies darauf hin, in den Kommentaren. Wenn der Aufruf JSON.parse
fehlschlägt, wird der Fehler synchron ausgelöst und Sie müssen möglicherweise try...catch
um den Code Promise
schreiben. Stattdessen würde man es schreiben, wie Bergi in his answer vorgeschlagen, um ein Promise-Objekt mit nur den Daten zu erstellen, und dann JSON.parse
für diese Promise-Kette zu tun.
'JSON.parse' ist eine Sync-Funktion. Warum willst du es * promitrifizieren? – thefourtheye
Weil ich eine Kette von Versprechen erstellen möchte, wo JSON.parse an der Spitze steht – Mazzy
@Mazzy: Woher kommen deine 'Daten'? Können Sie uns Ihren vollständigen Code zeigen? Es könnte eine bessere Lösung geben. – Bergi