jeerjmin
@jeerjmin

Как получить доступ к [[PromiseValue]]?

Здравствуйте, пытаюсь сделать запрос API на получение фотографии указанного мною города и если запрос не удачный, то диспатчу failurePhotos().

Но проблема в том, что response.json() вместо нужного мне значения представляет себя объект, где нужное мне свойство обозначено [[PromiseValue]], к которому не получить доступ.

Вот код. Прошу помочь.

export function receivePhotos(json, value) {
    return {
        type: "RECEIVE_PHOTOS",
        photos: json,
        value: value,
        receivedAt: Date.now(),

    }
}

export function failurePhotos() {
    return {
        type: "FAILURE_PHOTOS",
        photos: "http://tutinteresno.com/wp-content/uploads/2015/10/nrgruplxira.jpg",
        receivedAt: Date.now(),

    }
}

export function fetchPhotos(valueLower, value) {
    return function(dispatch) {
        dispatch(requestPhotos())

        var request = new Request
        ('https://api.teleport.org/api/urban_areas/slug:'+valueLower+'/images/', {
            method: 'GET',
            mode: 'cors'
        });

        return(

            fetch(request).then(response => {
                if (response.ok) {
//                  console.log("response.json", response.json())
                    dispatch(receivePhotos(response.json(), value))

                } else {
                    dispatch(failurePhotos())
                }
            })



        )
    }
}
  • Вопрос задан
  • 2276 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Не правильно используете Fetch API.
Простой пример использования:
fetch('https://example.com/api')
  .then(response => response.json())
  .then(json => dispatch(someAction(json)))
  .catch(console.log);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы