Аксиос обещает путаницу - PullRequest
0 голосов
/ 13 мая 2018

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

let info = ["Test1", "Test2", "Test3"];

isInfoAviable= (email) => {
    payload.info = info
    return axios.post(url, payload, axiosConfig).then((response) => {
        return response.data.isAvailable ? true : null
    }).catch((error) => {
        console.log(error);
    });
}

for (info of infos) {

    isInfoAviable(info).then((res) => {
        console.log(res) // If Test1 returns true, it'll  true even if Test2 is null, why?
    })
}

1 Ответ

0 голосов
/ 13 мая 2018

Вы catch ошибка в функции isInfoAviable, поэтому при выполнении isInfoAviable() она будет устранена, даже если обещание будет отклонено в isInfoAviable.

Чтобы решить эту проблему, удалите catch из isInfoAviable и поймайте его, когда вместо этого вызовете isInfoAviable():

isInfoAviable(info).then(...).catch(...)

РЕДАКТИРОВАТЬ : изменить payload.info = info на payload.info = email. Также избегайте использования переменных вне области действия функции (например, payload должен быть объявлен в isInfoAviable).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...