异步转Mono
发表于|更新于
|浏览量:
小利不争,小忿不发,可以合众。——傅昭
今天分享一个异步方法转Mono的方式,利用reactor.core.publisher.Mono#create:
1 | return Mono.create(sink -> rtmClient.subscribe(channelName, options, new ResultCallback<Void>() { |
即可实现
相关推荐
2021-07-20
接口能玩的小花招
一个人的礼貌是一面照出他的肖像的镜子。——歌德 首先写一个函数式接口 12345678910@FunctionalInterfacepublic interface Person { /** * 睡 * * @author <achao1441470436@gmail.com> * @since 2021/7/20 0020 23:20 */ void sleep();} 我们能通过调用其中的sleep方法执行函数(方法) 123 Person person = () -> System.out.println("睡"); person.sleep();// 执行结果:睡 而执行的函数则是我们接口本身,这个函数式接口就代表了一个函数 函数式接口 其实就可以理解为 函数、方法本身 但我们今天主要聊的不是这个 我们在函数中定义的变量默认就是常量 1234567891011121314@FunctionalInterfacepublic interf...
2021-06-14
collect补充
青年之文明,奋斗之文明也,与境遇奋斗,与时代奋斗,与经验奋斗。故青年者,人生,人生之春,人生之华也。——李大钊 书接上文,我们讲到并行流场景下三个参数的reduce会有一个坑 同理,在collect函数中也有这个坑 我们先使用普通流去做 123456789101112131415161718192021222324252627282930// 生成1-100List<Integer> list = Stream.iterate(1, i -> ++i).limit(200).collect(Collectors.toList());System.out.println(list);// 使用collect函数进行转换为List<Map<Integer,Integer>>,包含值和线程idList<Map<String, Object>> result = list.stream().collect(() -> { System.out.println("第一个参数:Supplie...
2023-12-31
批量分页
再也无需前思后想,一切岂非已然过往。——《且听风吟》 今天分享一个装一个分批分页,传入页码、分页条数,然后查询分页条数+1条数据,这里的+1是为了判断还有下一页数据,然后查询到后,再按照传入的lambda条件筛选,筛选完后的数据添加进集合,添加到集合后如果满足当前分页所需条数,就返回数据 这里需要做一个容错,当时间超过后直接返回,避免传入的lambda predicate一直为false导致死循环 12345678910111213141516171819202122232425262728293031323334353637383940414243444546import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import lombok.experimental.UtilityClass;import org.dromara.streamquery.stream.core.stream.Steam;import java.util.ArrayList;import java.util.List;...
2023-08-02
对接deepl翻译
富而不清白,不如贫而有名誉——弥尔顿 api文档如下,需要注意的是必须要绑定支付方式才能显示authKey: https://www.deepl.com/docs-api 代码如下: 12345678910111213141516171819202122232425262728293031import com.dtflys.forest.Forest;import lombok.val;import org.dromara.hutool.core.text.StrUtil;import org.dromara.streamquery.stream.core.collection.Lists;import org.dromara.streamquery.stream.core.stream.Steam;import java.util.List;import java.util.Objects;public class DeeplUtil { private static final DeeplProperties properties = SpringCont...
2022-12-18
获取lambda
处世让一步为高,退步即进步的张本;待人宽一分是福利人利己的根基。——洪自诚 昨天说了获取lambda代理 今天获取实际lambda对象 重要的是这个函数java.lang.invoke.LambdaMetafactory#metafactory以及altMetafactory 我们在昨天的基础上,进行获取 1234567891011121314151617181920212223@Test@SneakyThrowsvoid testVirtual() { final MethodHandle virtual = MethodHandles.lookup().findVirtual(LambdaExecutable.class, "getName", MethodType.methodType(String.class)); final SerFunc<LambdaExecutable, String> proxy = MethodHandleProxies.asInterfaceInstance(SerFunc.class...
2024-01-27
全局替换双斜杠(转义+反斜杠)为单斜杠
心气和平,玉体安宁。——佚名 今天经IOS开发小哥哥反馈,让我将全局返回的双斜杠\\替换为单斜杠\ 于是有了下面这段代码: 123456789101112131415161718192021222324252627@Overrideprotected void writeInternal(Object object, @Nullable Type type, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException { MediaType contentType = outputMessage.getHeaders().getContentType(); JsonEncoding encoding = getJsonEncoding(contentType); Class<?> clazz = (object instanceof MappingJacksonValue mappingJacksonValue ?...
