PromiseKit 编译错误

PromiseKit compilation errors

我是 PromiseKit 的新手,但是我无法获得一些非常基础的东西。考虑一下:

func test1() -> Promise<Bool> {
    return Promise<Bool>.value(true)
  }

  func test2() -> Promise<Bool> {
    return Promise<Bool> { seal in
      seal.fulfill(true)
    }
  }

  func test3() -> Promise<Bool> {
    return Promise<Bool>.value(true)
  }

下面给出了每一行的错误:

Cannot convert value of type Promise<Bool> to closure result type Guarantee<()>

 firstly {
    test1()
  }.then {
    test2()
  }.then {
    test3()
  }.done {

  }.catch {

  }

我做错了什么?我一直在尝试各种组合,但似乎没有任何效果。我在 PromiseKit 6.13.

来自 PromiseKit 故障排除 guide:

Swift does not permit you to silently ignore a closure's parameters.

所以你必须 specify 像下面这样的闭包参数:

firstly {
        test1()
    }.then { boolValue in
        self.test2()
    }.then { boolValue in
        self.test3()
    }.done { _ in

    }.catch { _ in

    }

甚至将 _ 名称分配给参数(确认参数存在但忽略其名称)

firstly {
        test1()
    }.then { _ in
        self.test2()
    }.then { _ in
        self.test3()
    }.done { _ in

    }.catch { _ in

    }