2015-10-27 4 views
0

Here это код ...Зачем мне возвращать обещание?

login().then { 

    // our login method wrapped an async task in a promise 
    return API.fetchKittens() 

}.then { fetchedKittens in 

    // our API class wraps our API and returns promises 
    // fetchKittens returned a promise that resolves with an array of kittens 
    self.kittens = fetchedKittens 
    self.tableView.reloadData() 

}.catch { error in 

    // any errors in any of the above promises land here 
    UIAlertView(…).show() 

} 

Посмотрите, как метод then это ничего не возвращает.

Когда я использую then, компилятор говорит, что я должен вернуть обещание. Почему у меня нет выбора?

Ошибка исчезает, когда я добавляю предложение catch сразу после. да?

+2

Вы можете указать свои типы более точно, как указано в документации http://promisekit.org/PromiseKit-2.0-Released/ (по-видимому, умозаключение во внутренних закрытий не является совершенным) –

+0

Ответ здесь. .. https://github.com/mxcl/PromiseKit/issues/210. После параметров закрытия я добавил '-> Void'. –

ответ

2

Ответ .

Я добавил -> Void после моего закрытия параметра.

.then { fetchedKittens -> Void in } 
Смежные вопросы