当前位置: 首页 > 面试题库 >

另一个功能完成后再运行

白腾
2023-03-14
问题内容

我想在pullData()完成后运行loadViews(),但我想知道这样做的最佳方法是什么?我也想在其上设置10秒超时,以便在可能的情况下显示网络错误。根据我的阅读,GCD看起来是完成此任务的方法,但是我对它的实现感到困惑。谢谢你提供的所有帮助!

//1
pullData()
//2
loadViews()

问题答案:

您需要的是带有完成块的完成处理程序。

创建它非常简单:

func firstTask(completion: (success: Bool) -> Void) {
    // Do something

    // Call completion, when finished, success or faliure
    completion(success: true)
}

并使用您的完成块,如下所示:

firstTask { (success) -> Void in
    if success {
       // do second task if success
       secondTask()
    }
}


 类似资料:
  • 问题内容: 我有一个带有主标签页活动的Android应用程序,并且在单个标签页内有多个活动。在我的主要活动的onCreate()中,我有一个可运行的内容,它创建了一个列表,而在各个活动中,我都使用了此列表。 在各个活动的onCreate()中,我还具有在列表上运行的Runnable。但是,我需要这些Runnable仅在主选项卡活动的Runnable完成创建列表时才运行,否则我将得到一个空列表。我正

  • 问题内容: 我有以下JavaScript代码: 我如何确保仅在完成后调用? 问题答案: 指定一个匿名回调,并使function1接受它:

  • 问题内容: 我在正常( 非ajax )函数中遇到了问题,每个函数中都包含许多 动画 。目前,我只是具有一个between函数,但这并不是完美的,因为没有浏览器/计算机是相同的。 附加说明:它们都有碰撞的单独动画/等。 我不能简单地将一个放在另一个的回调函数中 无论如何在js / jQuery中有: 我知道&,但是这些是针对AJAX的… 我更新的解决方案 jQuery有一个名为$ .timers的暴

  • 问题是 我有一个活动,它定期从API获取数据并显示收到的数据。API 使用 OAuth,因此我会收到一个临时访问令牌,该令牌在一段时间(1 小时)后过期。如果应用尝试使用过期的令牌获取数据,则显然请求将失败。在我的应用的早期迭代中,我对网络请求使用 AsyncTasks,基本上只是执行了一个新的异步任务,该任务将在调用从服务器获取数据的主异步任务之前获取新的访问令牌。这工作得很好,因为主要的Asy

  • 问题内容: 我的具体问题是,我需要执行(可能)大量的Javascript函数来准备类似批处理文件的内容(每个函数调用都会向同一批处理文件中添加一些信息),然后在所有这些调用完成之后,执行发送批处理文件的最终功能(例如,将其作为HTML响应发送)。我正在为此寻找一种通用的Javascript编程模式。 概括问题:给定Javascript函数funcA(),funcB()和funcC(),我将找出排序

  • 问题内容: 因此,我正在运行一个过程,这将需要几个小时才能完成。我想在完成后自动开始另一个过程。请注意,我无法在第一个脚本中添加对第二个脚本的调用,也无法创建依次运行两个脚本的另一个脚本。在Linux中有什么方法可以做到这一点吗? 编辑:一种选择是使用pgrep 每分钟轮询一次,并检查该过程是否完成。如果是这样,请启动另一个。但是,我不喜欢这种解决方案。 PS:两者都是bash脚本,如果有帮助的话