axios.post (). then () не передает разрешенные данные в функцию обратного вызова - PullRequest
3 голосов
/ 17 октября 2019

Когда я использую axios.post(...).then(data=>callback(data)), когда я обращаюсь к ним в обратном вызове, данные не определяются, однако в консольном журнале непосредственно перед доступом к данным отображаются все данные.

Я перепробовал всекомбинации асинхронных ждут, что это возможно. Я чувствую, что это гораздо более простая проблема, чем я ее делаю.

// passed in as successCallback
const handleCreationCompleted = data => {
    console.log(data)

    // Error below ReturnedDataObject not defined
    var object = data.ReturnedDataObject

}

const createObject = async (variables, successCallback, errorCallback) => {
    ...
    await axios.post(url, form_data, {
        headers: {
    ...
        },
    }).then(res => {
        successCallback(res)
    })
    .catch((err) => {
        errorCallback(err)
    })

Я должен иметь возможность доступа к данным, которые являются объектом json (они извлекаются из api graphql) в рамках successcallback

1 Ответ

2 голосов
/ 17 октября 2019

Вы используете await с then(). Вы должны переключиться на один. Если вы используете await, присвойте результат переменной. Вы также должны передавать обратно данные ответа, а не сам ответ.

const response = await axios.post(...)
callback(response.data)

Если вы хотите использовать then, то это:

axios.post(...)
.then(respone => callback(response.data))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...