asynchronous 相关问题

异步编程是用于推迟具有高延迟或低优先级的操作的策略,通常旨在提高软件的性能,响应性和/或可组合性。这些策略通常使用事件驱动编程和回调的某种组合来使用,并且可选地通过协同程序和/或线程来使用并发。

CompletableFuture.allof() 获取空指针异常

我的结构类似于下面的代码块。不知何故,我在 CompletableFuture.allOf 方法中得到 nullpointerException: 这里可能有什么问题? 谢谢.. 列表 我的结构类似于下面的代码块。不知何故,我在 CompletableFuture.allOf 方法中得到 nullpointerException: 这里可能有什么问题? 谢谢.. List<CompletableFuture<String>> completableFutures = new ArrayList<>(); for(Classx list : request.getlist()) { switch (list.getCases()) { case 1: completableFutures.add(asyncProcess(list)); break; case 2: completableFutures.add(asyncProcess2(list)); break; } } CompletableFuture<Void> allFutures = CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[0])); @Async public CompletableFuture<String> asyncProcess(Classx list) { try{ //..some codes } catch(Exception e){ //..some codes } return CompletableFuture.completedFuture(x.getX()); } @Async public CompletableFuture<String> asyncProcess2(Classx list) { try{ //..some codes } catch(Exception e){ //..some codes } return CompletableFuture.completedFuture(x.getX()); } 错误信息是: java.lang.NullPointerException at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1306) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1305) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.andTree(CompletableFuture.java:1303) at java.util.concurrent.CompletableFuture.allOf(CompletableFuture.java:2225) 当我按如下方式更改代码时,它会引发相同的错误。 CompletableFuture allFutures = CompletableFuture.allOf(completableFutures.toArray(new CompletableFuture[completableFuture.size()])); 查看CompletableFutre.andTree的源代码,似乎当传入数组的元素为null时抛出此异常。在您的 return 函数之一中必须有一些额外的 asyncProcees 语句可以返回 null。

回答 1 投票 0

从异步函数返回常规生成器

如何从异步函数返回常规(非异步)生成器? 异步 def foo(): list = wait stuff() # 昂贵的 io 绑定到这里并完成。 对于列表中的我: 产量 i, i*2 对于 ... 中的 i、j

回答 1 投票 0

不同数据类型的Python成员变量在具有相同优先级的不同线程中未得到更新

考虑以下示例代码: 类测试: def __init__(self) -> 无: self.bool = False self.字符串=“” 线程 = 线程(目标 = self.target) 线程.s...

回答 1 投票 0

如何防止Spring Boot中的@Async方法参数中的数组被清除?

我遇到了 @Async 方法注释的某种线程问题。正在处理从 csv 到 DB 的数据,对于每 10000 条记录,将这些记录传递给另一个用 @Async 注释的方法。 ...

回答 1 投票 0

为什么我们对阻塞线程如此警惕?

自从我开始编程以来,我总是一致认为线程阻塞是不好的——有些操作本质上是异步的,我们应该创建尊重的代码

回答 1 投票 0

Promise.all() 永远无法解决

我有一个应该异步获取一些数据的函数。 获取页面事件(){ const Promise = this.calendarPage.days.map(day => { 返回 this.dataService.getEventsByDay(day) ...

回答 1 投票 0

Riverpod:在其他提供商内调用异步 Riverpod

我在我的项目中使用 Riverpod,在我的一个提供程序中我想调用另一个异步提供程序,所以这是我的代码: @riverpod 类 SelectedUser 扩展 _$SelectedUser { @覆盖 列表<

回答 1 投票 0

无法使用 pytest 运行 aiohttp 测试用例

我正在尝试在我的 aiohttp 应用程序上运行 pytest。 我添加了一个“pytest.ini”配置文件。 但每当我运行 pytest 时,它只会给我一个错误。它永远不符合我的测试文件。 我的同事...

回答 1 投票 0

如果我显式返回 Promise,我应该定义异步函数吗?

我们知道异步函数隐式返回 Promise。但我有一个纯粹迂腐的问题。如果我显式返回 Promise,是否应该添加 async 关键字? 这是: const wait = 异步 ms =>...

回答 2 投票 0

处理后台作业中的数据库调用失败

我有以下工作流程: UI 进行 API 调用来删除资源。此删除操作非常耗时,需要进行大量外部调用。所以实际的删除是作为异步/后台运行的

回答 1 投票 0

异步等待和事件处理程序

是否可以将通常的事件处理程序从 void 转换为基于任务,并像下面这样等待它? Something.PropertyChanged += async (o, args) => 等待 IsButtonVisible_PropertyChanged(o, args);

回答 3 投票 0

在 Kotlin 中访问 CoroutinScope 中更新的变量

我已经全局声明了变量并更新了coroutinScope内的值。当我调用 coroutinScope 之外的值时,它的值不会更新。我如何访问内部更新的值

回答 1 投票 0

使用 DartZ 调用多个 Future 时如何避免嵌套折叠?

我有一段代码,如下所示: 最终 Either resA =等待deleteA(); resA.fold( (失败)=>处理失败(), (成功)异步{ 最后要么 我有一段代码,如下所示: final Either<Failure, Unit> resA = await deleteA(); resA.fold( (failure) => handleFailure(), (success) async { final Either<Failure, Unit> resB = await deleteB(); resB.fold( (failure) => handleFailure(), (success) => handleSuccess(), ); }, ); 基本上,我想调用第一个函数,它返回失败或单位(成功值并不重要)。 然后,如果第一个函数成功,我想调用另一个函数,它也返回 Future 或 Unit。 我该如何避免在另一个 fold 中进行 fold 的丑陋嵌套调用? 我正在使用包 dartz,这真的很酷,但缺乏文档。 这个问题好像已经两年没有答案了,最近我对Dart中的函数式编程产生了兴趣,在这里我尝试回答一下。 您可以使用 traverseFuture 继续下一个异步过程,使用 then 链接未来,并使用 bind 绑定结果。最后,折叠结果。这是代码: final Either<Failure, Unit> resA = await deleteA(); resA .traverseFuture((w) => deleteB()) .then((x) => x.bind((y) => y)) .then((z) => z.fold( (l) => handleFailure(l.msg), (r) => handleSuccess(), )); 上面的代码还可以再简化一下。您可以直接调用并链接 deleteA(),而不将其存储到变量中,将 bind 和 fold 链接在一行中,并将 bind((y) => y) 更改为 bind(id) (id 表示来自 dartz 包 f(x) = x 的身份) )。 这是简化的代码: deleteA() .then((resA) => resA.traverseFuture((w) => deleteB())) .then((x) => x.bind(id).fold( (l) => handleFailure(l.msg), (r) => handleSuccess(), )); 没有 ifs 语句,没有嵌套折叠,只有一个链接函数语句 ✨ 结果呢?错误处理怎么样?结果与之前对双折所做的结果保持不变,上面的代码(单折)使用了面向铁路的编程原理(ROP),如下所示 所以如果deleteA失败,deleteB将不会被执行。 这是错误处理演示和结果输出: 希望能解决您的问题,谢谢😉

回答 1 投票 0

在 C# async/await 中,延迟长度会影响控制权何时返回调用者吗?

以下代码按预期工作 - 两个服务同时启动。 List services = [ new Service(), new Service() ]; foreach(服务中的服务) { 任务任务 =

回答 1 投票 0

如何关闭通过 TransformStream 传输的 Web 串行端口?

我有一个 Web 串行端口,我想从中读取一些数据。我想使用 TransformStreams 通过使用 pipelineT 进行一些处理(例如将字节解码为字符串、分离出逻辑消息等)...

回答 2 投票 0

Should.ThrowAsync 未捕获来自 HttpClient.GetAsync() 请求的异常

在我们的项目中,我们有一个由前同事编写的测试,该测试正在向端点发出请求,该端点应该并且确实返回 500 -InternalServerError(使用 Shouldly 检查这一点)...

回答 1 投票 0

JavaScript 模块的加载顺序问题

Github 存储库:https://github.com/leighhobson89/ChipshopChopper 我很难强制一个 .js 文件在另一个 .js 文件尝试之前运行其代码。问题的关键是我是

回答 1 投票 0

Select LINQ 操作中的异步方法未按预期并行执行

让我们考虑一下这段代码: var 任务 = actionItems.Select(t => DoSmthAsync()); var resultAll =等待Task.WhenAll(tasks); 及方法: 公共异步任务 DoSmthAsync() { 调试。

回答 2 投票 0

限制 Node.js 中的异步调用

我有一个 Node.js 应用程序,它可以在本地获取文件列表并将它们上传到服务器。该列表可能包含数千个文件。 对于 (var i = 0; i < files.length; i++) { upload_file(files[...

回答 6 投票 0

(React Native Gesture Handler)尝试从不同线程同步调用函数

我正在尝试从平移手势(React Native Gesture Handler)更改状态。 const [localShowRecents, setLocalShowRecents] = useState(false) consttranslateY = useSharedValue(0); 常量手势 =

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.