Piszę małą aplikację na iPhone'a za pomocą reakcji natywnej. Próbuję pobrać dane JSON ze strony internetowej za pomocą pobierania. Tak jak w przykładzie:Jak uzyskać dane JSON z pobierania (reagowanie natywne)
function status(response) {
if (response.status >= 200 && response.status < 300) {
return response
}
throw new Error(response.statusText)
}
function json(response) {
return response.json()
}
fetch('/users', {
method: 'post',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Hubot',
login: 'hubot',
})
}).then(status)
.then(json)
.then(function(json) {
console.log('request succeeded with json response', json)
}).catch(function(error) {
console.log('request failed', error)
})
Wszystko działa dobrze, ale muszę później użyć tych danych. Kiedy próbuję przypisać ją do jakiejś zmiennej w funkcji json, otrzymuję komunikat "Request error", a następnie otrzymuję dane (poprawnie). Jaka jest najlepsza praktyka, aby uzyskać te dane i mieć je w jakiejś zmiennej, aby użyć go później?
w sposób do pamięci, które zwykle mają dwa thens jak poniżej: '.Następnie ((odpowiedź) => { response.text(); console.log (odpowiedź) }) .then ((responseText) => { console.log (responseText); }) .catch ((błąd) => { console.warn (błąd); }) .done(); 'zastanawiałem się, co czy każdy z nich powraca i dlaczego jest zorganizowany w ten sposób? jak oni pracują? –
@KevinZhao: 2 następnie wykonuje się sekwencyjnie, 1. następnie otrzymuje tekst z obiektu odpowiedzi, a drugi służy do drukowania wartości tekstowej. – vignesh