событие размытости JavaScript — является там каким-либо способом обнаружить, какой элемент теперь фокусируется? [дубликат]

Прежде всего, у вас есть логика для генерации токена, если токена нет. Например:

private Mono getToken(String token) {
     return Mono
         .just(token)
         .switchIfEmpty(Mono.just("some token"));
}

В этом случае немного излишне использовать switchIfEmpty для этого, но я предполагаю, что ваш процесс генерации токена немного сложнее, иначе вы могли бы работать с [ 114] вместо (например, token.orElse("some token")).

Кроме того, у нас также есть некоторая логика, чтобы либо найти пользователя по его токену, либо создать нового пользователя, если по данному токену нет пользователя:

private Mono findUserByToken(String token) {
    return userRepository
        .findByToken(token)
        .switchIfEmpty(userRepository.save(new User("John Doe", token)));
}

Теперь, когда у нас есть эти методы, мы можем создать PageView и использовать эти методы по пути. Причина, по которой я начинаю с создания PageView, заключается в том, что это первая «константа» во всем токене, независимо от того, найден ли токен / пользователь:

return Mono
    .just(new PageView(uri))
    .flatMap(pageViewRepository::save)
    .flatMap(pageView -> getToken(token)
        .flatMap(this::findUserByToken)
        .doOnNext(user -> user.setFoo("foo"))
        .doOnNext(user -> user.getPageView().add(pageView)))
    .flatMap(userRepository::save)
    .map(User::getToken);

Теперь, поскольку вам нужен токен добавить к ответу, и я понял, что токен как-то является частью объекта User (иначе UserRepository.findByToken() не сработает?), было бы проще просто использовать User::getToken в конце, чтобы получить токен для передачи на ответ.


Имейте в виду, что шаблон репозитория правильно работает с Spring, но есть только реактивная поддержка для MongoDB, Cassandra, Couchbase и Redis. Кроме этого, есть также реактивная поддержка PostgreSQL через rdbc , но я не думаю, что данные Spring поддерживают это.

7
задан Benjamin 7 January 2014 в 10:49
поделиться