符合
PromiseKit 6.0 Guide
then
被拆分为
然后
,则,
done
和
map
-
然后
输入以前的承诺值,并要求您返回一个承诺。
-
完成
输入之前的承诺值并返回无效承诺(这是链使用量的80%)
-
地图
输入以前的承诺值,并要求您返回非承诺值,即值。
为什么会这样?正如开发商所言:
我们的PromiseKit
然后
做了很多事情,我们依靠斯威夫特推断出正确的
然后
来自上下文。但是,使用多行
然后
它将无法做到这一点,它不会告诉你情况不明确,而是会制造一些其他错误。通常是可怕的
cannot convert T to AnyPromise
。我们有一个解决这一问题的故障排除指南,但我相信工具可以正常工作,当您花4年时间等待Swift解决问题,而Swift没有解决问题时,您会怎么做?我们选择在更高层次上找到解决方案。
所以可能在你的情况下需要使用
完成
func stackOverflowExample() {
self.getUserFirstName().done { name -> Void in
print(name)
}
}
func getUserFirstName() -> Promise<String> {
return .value("My User")
}
compactMap
允许您在返回nil时获得错误传输。
firstly {
URLSession.shared.dataTask(.promise, with: url)
}.compactMap {
try JSONDecoder().decode(Foo.self, with: $0.data)
}.done {
}.catch {
}
查看更多信息
release guide
压缩映射
已重命名为
flatMap
see discussions here