2016-01-14 3 views
23

Javascriptでは、このエラーはいつスローされますか?このエラーは何を意味しますか?Uncaught TypeError:既に読み込まれていますか?

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では結果が見つかりませんでした。

答えて

37

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

私はそれがBody.bodyUsedメソッドを提供している理由だと思います。あなたはそれが既に読まれているかどうかを見ることができます。

5

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

あなたは、私が以下に添付REFからのレスポンスボディの方法を確認することができますし、約束が解決されたかどうチェックするフラグが必要になります。この場合には、あなたが使用することができますBody.bodyUsed

参考:https://developer.mozilla.org/en-US/docs/Web/API/Response

HTH

+1

このエラーも発生しました。あなたは約束を2度解決する必要はありません。これは、約束の内部的な性質を踏まずには不可能であるはずです。その上で '.then()'を2回呼び出すだけです。 '.then()'を2回呼び出すことがサポートされていることが記録されています。私は最小限の例を沸かせることができるかどうかを見ていきます。私のコードはこれを表示しています:https://tonicdev.com/hippietrail/57611741f056621300ecd1e2 – hippietrail

関連する問題