1. ホーム
  2. ジャバスクリプト

[解決済み】ReadableStreamオブジェクトからデータを取得する?

2022-04-02 15:35:18

質問

からの情報を取得するにはどうすればよいですか? ReadableStream オブジェクトを作成できますか?

私はFetch APIを使っていますが、ドキュメントからはこのことがよくわかりません。

本文は ReadableStream で、単純にこのストリーム内のプロパティにアクセスしたいのです。ブラウザの開発ツールの「レスポンス」では、この情報をJavaScriptオブジェクトの形でプロパティに整理しているように見えます。

fetch('http://192.168.5.6:2000/api/car', obj)
    .then((res) => {
        if(res.status == 200) {
            console.log("Success :" + res.statusText);   //works just fine
        }
        else if(res.status == 400) {
            console.log(JSON.stringify(res.body.json());  //res.body is undefined.
        }

        return res.json();
    })

解決方法は?

からのデータにアクセスするために ReadableStream のいずれかを呼び出す必要があります。 ここで ).

一例として

fetch('https://jsonplaceholder.typicode.com/posts/1')
  .then(function(response) {
    // The response is a Response instance.
    // You parse the data into a useable format using `.json()`
    return response.json();
  }).then(function(data) {
    // `data` is the parsed version of the JSON returned from the above endpoint.
    console.log(data);  // { "userId": 1, "id": 1, "title": "...", "body": "..." }
  });


EDITです。 データの戻り値がJSONでない場合、またはJSONを必要としない場合は、次のようにします。 text()

例として

fetch('https://jsonplaceholder.typicode.com/posts/1')
  .then(function(response) {
    return response.text();
  }).then(function(data) {
    console.log(data); // this will be a string
  });

これですっきりするといいのですが。