我是Swift中的承諾新手,並且使用PromiseKit嘗試在操場中創建一個非常簡單的響應並嘗試使用它。我有以下代碼:錯誤:無法使用Swift + PromiseKit將類型'() - >()'的值轉換爲關閉結果類型'String'
//: Playground - noun: a place where people can play
import UIKit
import PromiseKit
func foo(_ error: Bool) -> Promise<String> {
return Promise { fulfill, reject in
if (!error) {
fulfill("foo")
} else {
reject(Error(domain:"", code:1, userInfo:nil))
}
}
}
foo(true).then { response -> String in {
print(response)
}
}
不過,我得到以下錯誤:
error: MyPlayground.playground:11:40: error: cannot convert value of type '() ->()' to closure result type 'String' foo(true).then { response -> String in {
感謝您的回答。好像我沒有足夠理解承諾。如果響應 - >無效,這是否意味着履行(「富」)仍然會按預期工作 - 因爲我將有權訪問.fhen中的「foo」作爲響應? –
是的。 ' - >'之後的類型只是說明了什麼,如果有的話,_you_從閉包中返回; 「響應」保持不變。 – aaplmath
我也嘗試了操場上的修正,但它似乎沒有打印出「foo」。在右側,而是說「Promise:UnsealedState」? –