Как разорвать цепочку обещанийIOS

Программируем под IOS
Anonymous
Как разорвать цепочку обещаний

Сообщение Anonymous »

У меня есть следующий код.

Код: Выделить всё

func myFunction() -> Promise {
firstly {
doSomeJob()
}.then { jobResult in
handleJobResult(jobResult)
}.then { handledResult in
return furtherJob(handledResult)
}
}
Он прекрасно работает. Теперь мне нужно его изменить. При некоторых условиях jobResult не должен обрабатываться и затем передаваться в continueJob. Вместо этого он должен пройти простую обработку.

Код: Выделить всё

func simpleJob(_ jobResult: MyJobResult) -> Promise { ... }

func myFunction() -> Promise {
firstly {
doSomeJob()
}.then { jobResult in
if jobResult.allowsSimpleProcessing {
return simpleJob(jobResult)
// furtherJob must not be called.
// I want to step out of chain of promises.
}
handleJobResult(jobResult)
}.then { handledResult in
return furtherJob(handledResult)
}
}
Другими словами, вместо исходной цепочки

Код: Выделить всё

doSomeJob
-> handleJobResult -> дальнейшее задание
должно быть

Код: Выделить всё

doSomeJob
-> simpleJob
Как мне это написать?

Подробнее здесь: https://stackoverflow.com/questions/798 ... f-promises

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