Возврат Обещания из обработчика завершения в PromiseKit
У меня есть следующая проблема:
func doSomething() -> Promise<Bool> {
let completionHandler = { (result: Bool) in
// How can I fulfill the promise here -- Promise { fulfill, _ in fulfill(result) }
}
someLibrary.doSomeTasks(handler: completionHandler)
// What do I return for this function?...
}
В настоящее время я не знаю, что вернуть / как вернуть Promise<Bool>
поскольку bool
значение недоступно, пока не завершится обработчик завершения. someLibrary.doSomeTasks
не поддерживает PromiseKit, поэтому я застрял с использованием обработчика завершения, как показано. Спасибо!
2 ответа
Это было обновлено в обещании 6 для:
func doSomething() -> Promise<Bool> {
return Promise<Bool> { seal in
someLibrary.doSomeTask(handler: { value in
seal.fullfill(value)
// we also have seal.reject(error), seal.resolve(value, error)
})
}
}
Вот общая форма, чтобы делать то, что вы хотите:
func doSomething() -> Promise<Bool> {
return Promise { fulfill, reject in
someLibrary.doSomeTask(handler: { value in
fulfill(value)
})
}
}