5

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)
    }
}

コンパイラ エラー Cannot invoke initializer for type 'Promise< >' with an argument list of type '(( , _) -> _)' が発生する

4

2 に答える 2

5

promise が値を返さない場合は、()akaを使用する必要がありVoidます。

return Promise { fulfill, reject in
    fulfill(())
}

これが機能しない場合 (私はテストしていません)、注釈を付けてみてください。

return Promise<()> { fulfill, reject in
    fulfill(())
}

(タイプaka()の唯一の値であることに注意してください)()Void

于 2016-07-06T00:21:54.633 に答える