Ios 从PromiseKit中的完成处理程序返回承诺

Ios 从PromiseKit中的完成处理程序返回承诺,ios,swift,asynchronous,promise,promisekit,Ios,Swift,Asynchronous,Promise,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)

我有以下问题:

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?...
}

目前我不知道返回什么/如何返回承诺,因为bool值在完成处理程序完成之前不可用。someLibrary.doSomeTasks不支持PromiseKit,因此我只能使用如图所示的完成处理程序。谢谢

这是做你想做的事情的一般形式:

func doSomething() -> Promise<Bool> {
    return Promise { fulfill, reject in 
        someLibrary.doSomeTask(handler: { value in
            fulfill(value)
        })
    }
}

这已在promiseKit 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)
       })
   }
}