インスタンスプロパティ


publisher


このインスタンスの結果を各購読者に厳密に 1 回だけ公開するか、結果が失敗を示している場合は直ちに失敗する Combine 発行者。


iOS 13.0+ iPadOS 13.0+ Mac Catalyst 13.0+ macOS 10.15+

tvOS 13.0+ visionOS 1.0+ watchOS 6.0+

var publisher: Result<Success, Failure>.Publisher { get }

FailureError に準拠している場合に使用できます。


議論


以下の例では、goodResult は整数値 1 で成功した結果を提供します。結果の発行者に接続された、sink 購読者は出力 1 を受信し、その後に正常完了 (Subscribers.Completion.finished) を受け取ります。


 let goodResult: Result<Int, MyError> = .success(1)
 goodResult.publisher
     .sink(receiveCompletion: { print("goodResult done: \($0)")},
           receiveValue: { print("goodResult value: \($0)")} )
 // Prints:
 // goodResult value: 1
 // goodResult done: finished

常に単一の値を公開する Just 発行者とは対照的に、この発行者は、結果が /Swift/Result/failure の場合、値を全く送信せず、その代わりエラーで終了することがあります。次の例では、badResult はカスタムエラーを包み込んだ失敗の結果です。この結果の発行者に接続された sink 購読者は、直ちに終了 (Subscribers.Completion.failure(_:)) を受け取ります。


 struct MyError: Error, CustomDebugStringConvertible {
     var debugDescription: String = "MyError"
 }
 let badResult: Result<Int, MyError> = .failure(MyError())
 badResult.publisher
     .sink(receiveCompletion: { print("badResult done: \($0)")},
           receiveValue: { print("badResult value: \($0)")} )
 // Prints:
 // badResult done: failure(MyError)




以下も見よ


結果の公開


struct Publisher

このインスタンスの結果を各購読者に厳密に 1 回だけ公開するか、結果が失敗を示している場合は直ちに失敗する Combine 発行者の型。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ