Моя http-загрузка Nativescript не разрешается должным образом - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь войти в систему пользователя.

Я вызываю следующий API для проверки учетных данных:

http://5c55225d84df580014cd06a3.mockapi.io/users?search=Ally45

Evenхотя мой вызов моего API, похоже, возвращает правильные данные, мой код по какой-то причине не распознает возвращенные данные.

В моем файле login-page.xml я вызываю функцию login (), когдапользователь нажимает кнопку входа в систему:

login-view-model.js

// some code omitted for brevity...

function LoginViewModel() {
const viewModel = observableModule.fromObject({
    processing: false,
    email: "Ally45",
    password: "12345",

    login() {
        this.processing = true;
        userService.login({
            email: this.email,
            password: this.password
        }).then(() => {
            this.processing = false;

            topmost().navigate("./home/home-page");

        })
        .catch((e) => {
            this.processing = false;
            alert("Unfortunately we could not find your account.");
        });
    },
   });

    return viewModel;
   }

, поэтому я просто хочу войти в систему, а затем перейти на домашнюю страницу.

Вот моя функция userService.login, которая вызывается выше:

user-service.js

exports.login = function (user) {

return new Promise((resolve, reject) => {

    httpModule.getJSON("http://5c55225d84df580014cd06a3.mockapi.io/users?search=" + user.email)
    .then( resolve(response))

    .catch((error) => { handleErrors(error); reject(); })
    })  

};  

(Для тестирования яя проверяю только, существует ли в этом примере электронная почта "Ally45", поскольку JSON возвращается)

Возвращаемые результаты

Я должен быть перенаправленна домашний экран, но я никогда не получаю там.

Кто-нибудь видит, где я иду не так?

Спасибо.Так застрял ...

Джон

1 Ответ

0 голосов
/ 03 февраля 2019

У вашей Http-выборки нет проблем, это только способ обработки ответа.Когда вы нажимаете этот URL, вы получаете объект ниже на вашем result

[
 {
  "id": "43",
  "createdAt": "2019-02-01T05:54:43.766Z",
  "username": "Ally45"
 }
]

, который является массивом, но вы тестируете его как result.id === undefined, очевидно, это undefined, и вы звоните reject()

Ваше состояние должно быть result.length === 0 || result[0].id === void 0

Обновленная игровая площадка

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