Как вызывать функции по очереди в swift? - PullRequest
0 голосов
/ 02 октября 2018

У меня есть две функции

Вызов этих двух функций следующим образом

fun c(){

  a()

  b()
}

Проблема, с которой я сталкиваюсь здесь перед получением ответа a метод b также выполняет

, но я хочу выполнять один за другим

Пожалуйста, предложите

Ответы [ 3 ]

0 голосов
/ 02 октября 2018

Вы можете вызвать другой метод в блоке завершения другого.

0 голосов
/ 02 октября 2018

Вы можете использовать замыкание:

метод a () будет:

func a(_ completion: (() -> ())?){

//Do all of your staff, at the end call this:
 completion()
}

Вы можете вызвать метод двумя способами:

a() //this will not execute the callback

//this is a callback where you call the other function
a(){ 
   b()
}
0 голосов
/ 02 октября 2018

Option1 : вызов bbb изнутри завершения aaa

func aaa() {
   Api.taskl {
       bbb()
   }
}

Option2: асинхронная синхронизация в пользовательской последовательной очереди, подобной этой

let serialQueue = DispatchQueue(label: "queuename")
serialQueue.sync { 
 aaa()
}
serialQueue.sync { 
 bbb()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...