问题标签 [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 投票
0 回答
58 浏览

ios - Swift Dispatch Group 问题线程问题

这样写的代码会不会有什么潜在的bug?基本上,调度组的通知闭包已经在主线程上,但我的技术负责人在通知闭包内再次在 main 上添加了 DispatchQueue。我试图推动删除DispatchingQueue.main.async {}呼叫,但他们的回应是它已经被 QA-ed 并告诉我不要碰它,担心我可能会导致错误。

会不会有线程问题?

0 投票
1 回答
281 浏览

swift5 - URLSession.shared.datatask 和 dispatchgroup 的问题

我对 swift 还很陌生,所以请耐心等待。我遇到了一个问题,这个应用程序在存档后在我的开发机器上运行良好,并且网守签名。但在其他用户机器上,它无法返回变量。我想让它工作,所以捕获的东西可能需要一些工作,就像我说我在 swift 上非常新/绿色

以上基本上是设置api调用等。

下面是我对 Arista 交换机的 eapi 进行 api 调用的地方

我已经尝试为此创建一个调度队列并在调度队列中以异步方式运行整个块,我尝试过同步,我尝试了一些疯狂的事情,就返回而言,它似乎不适用于用户机器变量,它似乎并没有等待。等待我的并且完美地工作......我在这里有点困惑,apicall部分已经在帮助下重写了几次,因为它最初锁定用户机器上的线程并触发线程安全,现在它只返回一个nil变量和弹出我的自定义错误消息...

请帮忙....

0 投票
1 回答
49 浏览

swift - 在 Swift 中将数据传递给 dispatchGroup.notify

我正在从 API 下载一些 JSON,但是在我们进入下一个屏幕之前必须完成另一个先决条件(动画)。

我决定使用它DispatchGroup来执行此操作,但也需要重新加载。

我想出了一个使用完成处理程序的解决方案,该处理程序要么移动到下一个屏幕,要么dispatchGroup.leave只是移动到下一个屏幕,因为我们只需要下载一次数据。

现在的问题是这是在视图模型中 - 所以用户字符串实际上是我希望根除的状态。

有什么方法可以将用户字符串传递给dispatchGroup.notify或类似的?

0 投票
1 回答
52 浏览

swift - DispatchGroup 等待 Firestore 查询完成

我在单个用户 tapGesture 中运行多个 Firestore 查询,这要求我确保应用程序中运行的同时 Firestore 查询最少或没有。我已经阅读了关于这个问题的多个答案(等待任务完成),但我的查询没有按照我想要的顺序运行。

感谢您帮助指导我使用 DispatchGroup 以确保代码和查询的逻辑顺序。

我想确保函数checkAndCreateUserWorkoutProfile中的 Firestore 查询在DispatchGroup.notify(...)中的 2 个打印语句之前完成,从“Firestore Sequence”方法开始。相反,查询在两个打印语句启动后完成。

下面是我的 Xcode 调试器的代码和屏幕截图。如屏幕截图所示,问题在于使用“ DispatchGroup.notify(...) ”并没有等到函数 checkAndCreateUserWorkoutProfile中的 Firestore 查询完成。

在此处输入图像描述

使用@Kiril S. 的回答,代码已得到更正,如下所示。

Xcode 控制台显示更正的代码/查询序列。 在此处输入图像描述

0 投票
1 回答
33 浏览

swift - 将 DispatchGroup 与 Streaming API 一起使用?

我目前正在使用 DispatchGroup 在两个 API 调用完成时收到通知,然后将两个响应组合成 1 个对象,然后我在完成处理程序中返回该对象。

这适用于rest api,但是一旦我将它与两个流式调用一起使用,应用程序就会由于连续触发/不均匀的dispatchGroup.leave计数而崩溃。

还有什么方法可以实现我的目标,或者我可以做些什么来继续使用 DispatchGroup?下面是一个简单的例子来展示我在做什么。

0 投票
0 回答
27 浏览

swift - 如何在 coredata 中获取新写入的对象

我试图首先调用一个将数据从firebase保存到Coredata的函数,然后在执行完成后调用另一个从coredata获取数据并使用它的函数。我正在使用 dispatchGroup,这是我的代码:

现在 dispatchGroup 工作正常。首先调用“storeStatsDateFromFireBaseToCoreData”,然后调用“storePRData”。但似乎这些项目还没有完成加载到核心数据中,所以当“storePRData”函数试图获取它不能的项目时。

你们对我在这里缺少什么有任何线索吗?我是编码初学者,感谢您的帮助。

问候,本都