我正在使用RxSwift来完成我的代码.对于我目前的项目,我想将RxSwift的原则应用于来自LayerKit的一堆完成块:
layerClient.connectWithCompletion { (success, error) -> () in
if (!success) {
// Error
} else {
layerClient.requestAuthenticationNonceWithCompletion { (nonce, error) -> () in
// Even more blocks
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在考虑这样的事情:
// In extension
public func rx_connect() -> Observable<Bool> {
return create { observer in
self.connectWithCompletion { (success, error) -> ()in
if (success) {
observer.on(.Next(success))
observer.on(.Completed)
} else {
observer.on(.Error(error))
}
}
return NopDisposable.instance
}
}
public func rx_requestAuthenticationNonce() -> Observable<String> {
// Same for annother method
}
// In …Run Code Online (Sandbox Code Playgroud) 我有此方法可为某个提示创建收藏夹:
def favorite
@tip = Tip.find(params[:id])
Favorite.create(user: current_user, tip: @tip)
redirect_to :action => "show", :id => @tip.id
end
Run Code Online (Sandbox Code Playgroud)
我希望它更像一个拨动开关。因此:如果某个提示的用户收藏夹已经存在,则应删除该收藏夹。如果是用户和提示的新组合,则应使用这些值创建一个新的收藏夹。
最好和最美丽的方法是什么?