1

間違ったログイン資格情報を入力すると失敗するサービスがあります。ただし、私の Promise エラー ハンドラは呼び出されません。

errorコールバックに到達しないように、コードの何が問題なのかを把握していないようです。

サービス

func loadRepositories() -> Promise<[Repository]>{
    return Promise { fullfill, reject in
        manager.request(Method.GET, baseURL + "/api/1.0/user/repositories")
            .authenticate(user: username, password: password)
            .responseArray { (response: Response<[Repository], NSError>) in
                switch response.result{
                case .Success(let value):
                    fullfill(value)
                case .Failure(let e):
                    // The breakpoint here is reached.
                    reject(e)
                }
        }
    }
}

取り扱い

firstly{
    service!.loadRepositories()
}.then { repositories -> Void in
    loginVC.dismissViewControllerAnimated(true, completion: nil)
    self.onLoginSuccessful()
}.always{
    // Always gets called 
    loginVC.isSigningIn = false
}.error { error in
    // I never get here even though `reject(e)` is called from the service.
    loginVC.errorString = "Login went wrong"
}
4

1 に答える 1