问题标签 [dispatchgroup]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
150 浏览

swift - DispatchGroup 会永远等待吗?

我想知道以下情况。

我有一个DispatchGroup内部函数。现在我在后台线程上进入组并调用wait().

我的问题是在主线程离开函数后,组是永远等待还是被释放?

我不确定是否有任何引用或捕获。我会非常感谢一些解释,这个话题让我有点困惑。

先感谢您!

0 投票
0 回答
48 浏览

ios - 调度组与循环调用

将调度组与循环中的调用一起使用有什么好处?我使用alamo fire作为我的网络层。场景是我想以块的形式从服务器获取数据,一旦所有调用完成,我就可以继续前进。我真的需要使用调度组或简单的循环调用会起作用吗?

这就是我的函数内部的内容:

它似乎工作正常,但我想知道调度组是否有一些好处或这种方法存在缺陷。

0 投票
0 回答
158 浏览

swift - 如何在单个失败时中止整个调度组操作而不返回多个失败完成处理程序?

我在循环中使用调度组来跟踪一组网络请求,因此当它们全部成功完成时,成功完成处理程序仅返回一次。

但是,如果发生单个故障,我想中止整个操作并仅返回一次故障完成处理程序。我面临的问题是所有失败完成处理程序都会多次返回。这不是我想要的。

我的代码看起来像这样。

0 投票
0 回答
40 浏览

swift - LIBDISPATCH 客户端中的调度组崩溃错误:对 dispatch_group_enter() 的嵌套调用过多

由于对 dispatch_group_enter() 的嵌套调用过多而导致调度组崩溃。我仔细检查了代码,进入和离开电话是平衡的。这发生在 Prod for customers 中。我无法重现该问题。有人可以帮我重现这个问题,或者帮我提出一些解决这个问题的建议。在火力基地崩溃中得到以下文字 BUG IN CLIENT OF LIBDISPATCH: Too many nested calls to dispatch_group_enter()

调度组从数据库中检索数据并将其刷新到网络,并在成功调用后从数据库中删除数据

0 投票
0 回答
72 浏览

swift - 如何手动停止 DispatchGroup(当我们达到某个值时)并让它调用 .notify(手动完成所有执行)

这与想在一段时间后停下来不同。一个可能的用例示例:

在这里,我将每个内部 for 循环附加到调度组,以便它们同时计算,但是当找到答案时,让我们说在第 3 次运行中,调度组不需要计算其他的,应该像所有任务都完成一样停止并调用group.notify

基本上我希望它return到达答案时。有没有办法做到这一点?如果是这样怎么办?

根据我的研究,我们可以group.leave明确地说组中的一个块已完成执行,但是如何做到让组中的所有块在我们达到所需点时都完成呢?

0 投票
1 回答
54 浏览

swift - 如果访客数量超过 1,异步删除任务将不起作用

因此,我的目标是在用户删除其帐户时,如果已购买机票的客人人数超过 1,则删除所有用户的客人。

目前我有这个功能来尝试完成这个:

我提高了重试限制,看看是否是问题所在,但如果有多个客人,它仍然不会删除客人。

当用户在删除其帐户之前成功重新验证时,我会在警报操作中调用它:

这是数据库中的结果:

残差数据

其他所有内容都会按照正确的顺序、购买、用户本身以及 Firebase 身份验证中的用户被删除,但如果超过 1 位客人,客人永远不会被删除。deleteUserGuests导致此问题的方法中是否有我做错或遗漏的事情?

0 投票
1 回答
35 浏览

swift - group.notify 从未在 dispatchGroup 中调用

我有组和队列

在我的功能中,我发送 3 个请求

他们工作得很好,但是当我添加 DispatchGroup group.notify() 时从未调用

完成请求后如何调用 group.notify()?

0 投票
1 回答
327 浏览

ios - 结合 DispatchGroup 和 DispatchQueue

我的场景是这样的。我需要发送一个网络请求,作为响应,我将成为一个图像 URL 列表。然后我需要同时发送多个网络请求来获取所有这些图像,一旦我下载了所有图像,我需要填充一个tableView.

为了满足这些要求,我试图了解 Playground 之间的关系,DispatchQueue到目前为止DispatchGroup,这是我的代码。

问题是我得到了结果

但我想要的是这样的

我真的不明白我在这里做错了什么,任何帮助将不胜感激。

0 投票
2 回答
59 浏览

ios - 使用 dispatchgroup 在 for 循环中等待任务完成,如果失败则退出循环

我试图根据条件从 for 循环中退出,但我遇到了这个问题,因为它甚至没有从循环中退出。这是我的代码的循环。

0 投票
1 回答
54 浏览

json - Instagram Graph API - 快速避免“商业帐户转换前发布的媒体”错误

我正在尝试通过 instagram Graph API 从 instagram 获取数据。为此,我使用了一个带有名为 limit 的参数的 url,它返回一个 Json。限制将始终超过 1,并且可以达到 12。限制代表您想要获得的最后帖子的数量。

此限制必须等于用户在其 Instagram 上发布的帖子数量。如果您要求的限制低于此限制,您将不会收到所有帖子。如果结束,则 Json 响应为错误。

错误Json:

到目前为止,我的想法是尝试 12 个 url,计算其中有多少是有效的并返回正确的限制。它一直运行良好,直到最近我发现 API 在 100% 的情况下都无法返回错误。

这是我的代码:

在这里,我正在测试 Json 是否对“Json.username != nil”有效,但我发现即使限制错误,它有时也会进入条件,因为 API 有时无法返回错误。

因此,这不是避免“在商业帐户转换之前发布媒体”的最佳方法

理想情况下,从 API 中知道这个限制会很棒,但我认为这个功能不存在。否则有人知道我该怎么做吗?