PromiseKit:resolve 方法要求 String 和 Void 等价

PromiseKit: resolve method requires String and Void be equivalent

我正在尝试在 iOS Swift 5 应用程序中使用 PromiseKit v6,但我遇到了一个非常基本的问题。下面的代码会引发编译器错误:

let p1 = Promise<String> { seal in
   seal.resolve("Foo"); /// Referencing instance method 'resolve' on 'Resolver' 
                        /// requires the types 'String' and 'Void' be equivalent
}

我怀疑这是完全愚蠢的事情,但这里有什么问题吗?

你应该检查 https://mxcl.dev/PromiseKit/news/2018/02/PromiseKit-6.0-Released/ 其中描述了更改:

Promise.init We altered the main initializer:

Promise { fulfill, reject in

//… } You now have:

Promise { seal in // seal.fulfill(foo) // seal.reject(error) // seal.resolve(foo, error) }

所以 seal.fulfill("Foo") 将适用于您的情况