无法将类型“(Any) -> ()”的值转换为预期的参数类型“(_) -> _”
Cannot convert value of type '(Any) -> ()' to expected argument type '(_) -> _'
正在安装 PromiseKit (6.2.1)。 Swift4.0.
import UIKit
import PromiseKit
class ViewController: UIViewController {
func onFulfilled() -> (String) -> Promise<String> {
return { result in
return Promise<String> { seal in
print(result)
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(1), execute: {
seal.fulfill("Hello")
})
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
Promise.value("first")
.then(onFulfilled())
.then(onFulfilled())
.then(onFulfilled())
.then { result in print(result) } // Cannot convert value of type '(Any) -> ()' to expected argument type '(_) -> _'
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
错误
Cannot convert value of type '(Any) -> ()' to expected argument type '(_) -> _'
如何修复
如何修复 .then { result in print(result) }
?
将 then
替换为 done
。
_ = Promise.value("first")
.then(onFulfilled())
.then(onFulfilled())
.then(onFulfilled())
.done { result in print(result) }
参见:https://github.com/mxcl/PromiseKit/blob/master/Documentation/GettingStarted.md
done is the same as then but you cannot return a promise. It is typically the end of the “success” part of the chain.
正在安装 PromiseKit (6.2.1)。 Swift4.0.
import UIKit
import PromiseKit
class ViewController: UIViewController {
func onFulfilled() -> (String) -> Promise<String> {
return { result in
return Promise<String> { seal in
print(result)
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(1), execute: {
seal.fulfill("Hello")
})
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
Promise.value("first")
.then(onFulfilled())
.then(onFulfilled())
.then(onFulfilled())
.then { result in print(result) } // Cannot convert value of type '(Any) -> ()' to expected argument type '(_) -> _'
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
错误
Cannot convert value of type '(Any) -> ()' to expected argument type '(_) -> _'
如何修复
如何修复 .then { result in print(result) }
?
将 then
替换为 done
。
_ = Promise.value("first")
.then(onFulfilled())
.then(onFulfilled())
.then(onFulfilled())
.done { result in print(result) }
参见:https://github.com/mxcl/PromiseKit/blob/master/Documentation/GettingStarted.md
done is the same as then but you cannot return a promise. It is typically the end of the “success” part of the chain.