przypadku żądania z serwera z JavaScript pobrać API, trzeba zrobić coś jakDlaczego obiekt odpowiedzi z interfejsu API pobierania JavaScript jest obietnicą?
fetch(API)
.then(response => response.json())
.catch(err => console.log(err))
Tutaj, response.json()
jest rozwiązanie jego obietnicy.
Chodzi o to, że jeśli chcesz złapać błędy 404
, musisz rozwiązać obietnicę odpowiedzi, a następnie odrzucić obietnicę pobrania, ponieważ zakończysz tylko catch
, jeśli wystąpi błąd sieci. Tak więc wywołanie pobierania staje się czymś znacznie trudniejszym do odczytania i uzasadnienia. Moje pytanie brzmi: dlaczego jest to potrzebne? Jaki jest sens posiadania obietnicy jako wartości odpowiedzi? Czy istnieją lepsze sposoby radzenia sobie z tym?
Obiekt odpowiedzi nie jest obietnicą. Jest to odpowiedź, z 'json' (i metoda między innymi, która zwraca obietnicę.Jest twoje pytanie, dlaczego' json() 'zwraca obietnicę? –
Niezupełnie duplikat, ale możesz chcieć spojrzeć [tutaj] (http: //stackoverflow.com/a/32516463/3887516) – Amit
Czy naprawdę potrzebujesz treści odpowiedzi 404 jako błędu? Jeśli nie, istnieją prostsze sposoby osiągnięcia tego, co chcesz. Jeśli tak, nie widzę niczego nie tak z tym, jak działa 'fetch'. – Bergi