Как отменить все задачи, когда бросает какую -то одну задачу - Swift ComplorlunlyenceIOS

Программируем под IOS
Ответить
Anonymous
 Как отменить все задачи, когда бросает какую -то одну задачу - Swift Complorlunlyence

Сообщение Anonymous »

В моей демонстрации Print (error) возможно только после того, как оба (a, c) завершены.
может ли он выполнить немедленно печатать (error) после бросков A или C?func methodA() async throws -> String {
print("methodA Start")
try await Task.sleep(nanoseconds: 3_000_000_000)
try Task.checkCancellation()
print("methodA End")
return "A-Result"
}

func methodB() async throws -> String {
print("methodB Start")
try await Task.sleep(nanoseconds: 500_000_000)
try Task.checkCancellation()
print("methodB End")
return "B-Output"
}

func methodC(_ input: String) async throws -> Int {
print("methodC Start")
try await Task.sleep(nanoseconds: 800_000_000)
try Task.checkCancellation()
print("methodC End")
// return input.count * 3
throw NSError(domain: "Some Error", code: -1)
}

Task {
do {
async let a = methodA()

let b = try await methodB()
async let c = methodC(b)

let _ = try await (a, c)
} catch {
print(error)
}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... oncurrency
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»