web-dev-qa-db-ja.com

このエラーはどういう意味ですか— TypeError:Uncaught readed?

Javascriptでは、このエラーはいつスローされますか?

enter image description here

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
}

それはネイティブプロミスエラーですか?それは何を意味しますか? Googleには結果が見つかりませんでした。

41
tusharmath

.json().text()などを使用して本文が既に読み込まれていることを意味すると思います。x.json()を実行すると、応答の本文がJSONに読み込まれます。 x.json()を再度実行しようとすると、そのエラーが発生します。したがって、 these メソッドの1つしか使用できません。したがって、コードのどこかで、Bodyメソッドの1つを使用して同じ応答の本文を再度読み取っていると想定しています。

だからこそ、彼らはBody.bodyUsedメソッドを提供しています。そのため、すでに読み取られているかどうかを確認できます。

63
gkkirsch

このエラーは、プロミスを解決したことを意味します(この場合、Body.json()を使用しています)。

以下に添付したrefから応答本文のメソッドを確認できます。また、promiseが解決されたかどうかを確認するためのフラグが必要です。この場合、Body.bodyUsedを使用できます

リファレンス: https://developer.mozilla.org/en-US/docs/Web/API/Response

HTH

6
Winters