微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

升级到 Promisekit 6 后代码变得更加臃肿

如何解决升级到 Promisekit 6 后代码变得更加臃肿

我有一些相当旧的代码,我现在必须为 Xcode 12.4 更新。我正在使用 PromiseKit 并且不得不升级代码以满足编译器的要求。现在我有点困惑/沮丧,因为我不得不添加不必要的代码以满足编译器:

如果成功连接到服务器,我的代码必须做一些事情。 请注意,我没有明确使用回调的结果,我以前在第一行中有 products -> Void 并且在第一个闭包中没有 return 语句。但是,现在我必须明确定义 loadProducts 方法返回的内容。此外,我还必须添加一个 return 语句,这对我来说也不是必需的:

  1. result -> Promise<[Product]> in
  2. return .value(result)

以前可以省略这些 in 语句,但现在我必须重新声明 loadProducts 方法的内部工作原理。

这是代码

self.service?.loadProducts().then {  result -> Promise<[Product]> in
    vc.isSigningIn = false
    vc.dismiss(animated: true){
        HUD.flash(.success,delay: 0.5)
    }
    self.saveMoc()
    self.storeCredentials(domain: domain,username: username,password: password)
    
    return .value(result)
}.catch(policy: .allErrors) { error in
    print(error)
    vc.errorString = "An error occured"
}

我可能遗漏了一些东西,但为了使用新框架编译代码而必须添加内容感觉违反直觉。

我也想知道为什么 swift 不能使用一些“推断魔法”来弄清楚这些承诺返回什么以及为什么必须重新声明这一点

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。