我想用nil履行承诺,但我收到错误消息,我不能在这里是我的代码
public static func getCurrentDevice() -> Promise<Device>{
if let identity:[String:AnyObject] = auth?.get("identity") as! [String:AnyObject] {
if let uuididentity = identity["uuid"]{
return Promise { fulfill, reject in
Alamofire.request( Router.getDevice(uuididentity as! String) )
.responseObject { (response: Response<Device, NSError>) in
switch response.result{
case .Success(let data):
fulfill(data)
case .Failure(let error):
return reject(error)
}
}
}
}
}
return Promise { fulfill, reject in
fulfill(nil)
}
}
我收到编译错误 无法为“承诺&lt; &gt;”类型调用初始值设定项参数列表类型为'((,_) - &gt; _)'
答案 0 :(得分:3)
如果承诺没有返回值,您应该使用()
又称Void
:
return Promise { fulfill, reject in
fulfill(())
}
如果这不起作用(我没有测试过),你可以尝试注释它:
return Promise<()> { fulfill, reject in
fulfill(())
}
(请注意,()
是类型()
的唯一值{aka Void
)