En Javascript, quand cette erreur est-elle renvoyée?
index.js
/**
* Created by tushar.mathur on 24/12/15.
*/
'use strict'
const _ = require('lodash')
const Rx = require('rx')
const createDataStore = require('./src/createDataStore')
const fetch = x => Rx.Observable.fromPromise(window.fetch(x))
const parseJSON = x => Rx.Observable.fromPromise(x.json()) // Line: 11 (Where the exception is thrown)
var create = _.partial(createDataStore, fetch, parseJSON)
module.exports = {
create,
// Alias for legacy purposes
createDataStore: create,
createFetchStore: create
}
Est-ce une erreur de promesse native? Qu'est-ce que cela implique? Google ne montre aucun résultat trouvé.
Je pense que cela signifie que le corps a déjà été lu à l'aide de .json () .text () etc ... Lorsque vous exécutez x.json (), il prend le corps de la réponse et le lit en JSON. Si vous essayez d'exécuter à nouveau x.json (), cela vous donnera cette erreur. Vous ne pouvez donc utiliser qu'une seule fois ces méthodes . Je suppose donc que quelque part dans votre code, il lit à nouveau le corps de la même réponse en utilisant l’une des méthodes de Body.
Je pense que c'est pourquoi ils offrent le Body.bodyUsed
méthode. Donc, vous pouvez voir si cela a déjà été lu.
Cette erreur signifie que vous avez résolu la promesse (dans ce cas, vous utilisez Body.json()
) plusieurs fois.
Vous pouvez vérifier les méthodes du corps de la réponse à partir de la référence que j'ai jointe ci-dessous et vous avez besoin d'un drapeau pour vérifier si la promesse a été résolue ou non: dans ce cas, vous pouvez utiliser Body.bodyUsed
Référence: https://developer.mozilla.org/en-US/docs/Web/API/Response
HTH