1

我是新手,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)
  }

以下给了我每一行的错误:

无法将类型的值转换Promise<Bool>为闭包结果类型 Guarantee<()>

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

  }.catch {

  }

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

4

1 回答 1

0

PromiseKit故障排除指南

Swift 不允许你默默地忽略闭包的参数。

因此,您只需指定闭包参数,如下所示:

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

    }
于 2020-03-30T05:36:20.317 回答