Я хотел, чтобы div выглядел как 3D-сфера и переходил через цвета. Я обнаружил, что цвета фона градиента не переходят (пока). Я поместил радиальный градиентный фон перед элементом (используя z-индекс) с переходным сплошным фоном.
/* overlay */
z-index : 1;
background : radial-gradient( ellipse at 25% 25%, rgba( 255, 255, 255, 0 ) 0%, rgba( 0, 0, 0, 1 ) 100% );
, затем div.ball
внизу:
transition : all 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
затем изменил цвет фона div.ball
и вуаля!
flatMap
или concatMap
, используя оператор flatMap
, вы можете сгладить подпоток в неблокирующей общедоступной
Flux<Object> test {
method1().flatMap(obj -> {
if (obj.getTotalItems() > 20) {
return method2(obj)
.map(result -> {
obj.setItems(result);
return obj;
});
}
return Mono.just(obj);
});
}
flatMap позволяет сгладить несколько потоков одновременно Таким образом, в случае длительных операций вы можете использовать более эффективные элементы процесса.
Одним из недостатков flatMap является то, что он не сохраняет порядок элементов, поэтому если у вас есть последовательность вышестоящих элементов, таких как [1, 2, 3, 4]
с flatMap
, есть вероятность, что порядок будет изменен из-за асинхронной природы подпотоков .
Чтобы сохранить порядок, вы можете использовать concatMap
, который выравнивает только один поток за раз, поэтому есть гарантии, что порядок элементов выравнивания будет сохранен:
Flux<Object> test {
method1().concatMap(obj -> {
if (obj.getTotalItems() > 20) {
return method2(obj)
.map(result -> {
obj.setItems(result);
return obj;
});
}
return Mono.just(obj);
});
}