2016-10-23 3 views
0

с официального примера выборки данных с сервера осуществляется следующим образом:в React + Redux, когда следует использовать response.json()

function fetchPosts(subreddit) { 
    return dispatch => { 
    dispatch(requestPosts(subreddit)) 
    return fetch(`http://www.reddit.com/r/${subreddit}.json`) 
     .then(response => response.json()) 
     .then(json => dispatch(receivePosts(subreddit, json))) 
    } 
} 

так, когда я должен использовать response => response.json()? Я проверил mdn, но все еще не понял.

+1

Если вы хотите десериализовать строку JSON (сохраненную в потоке) в объект JS. – zerkms

+0

@zerkms, значит, вы похожи на JSON.parse()? спасибо –

+0

Это не совсем то же самое, так как он возвращает обещание. Но практически то, что он делает - он разбирает строку с JSON в один из типов JS, yep. – zerkms

ответ

1

Это зависит от того, что вы действительно запрашиваете и что хотите делать с ответа.

Например, если вы запрашиваете для любого изображения, вам не нужно звонить response.json() а вы DO-

var myImage = document.querySelector('.my-image'); 
fetch('flowers.jpg').then(function(response) { 
    return response.blob(); // here 
}).then(function(response) { 
    var objectURL = URL.createObjectURL(response); 
    myImage.src = objectURL; 
}); 

, если вы хотите получить яваскрипт объект из application/json ответа, вы бы как parse как то, что JSON.parse() для работы с данными ответа. Тогда вам нужно позвонить response.json().

Смежные вопросы