URLSession.DataTaskPublisher
๊ตฌ์กฐ์ฒด | URL ์ธ์ ๋ฐ์ดํฐ ์์ ์ ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฌํ๋ Publisher
์ด๋์ ๋ผ์ด์ ๋ ๋ ๊ฐ์ ์ธ์๋ฅผ ๋ฐ๋๋ค.
request
: URLRequest ๊ฐ์ฒดsession
: URLSession ๊ฐ์ฒด
๊ธฐ์กด URLSession.dataTask
์์
์ Publisher๋ฅผ ์ฌ์ฉํ์ฌ ์ฒ๋ฆฌํ ์ ์๋๋ก ํด์ค๋ค.
URLSession์ dataTaskPublisher
๋ฉ์๋๋ก ํด๋น Publisher๋ฅผ ๋ง๋ค ์ ์๋ค. ํด๋น ๋ฉ์๋๋ URL ๋๋ URLRequest ๊ฐ์ฒด๋ฅผ ์ธ์๋ก ๋ฐ๋๋ค.
// URLSession.DataTaskPublisher Publisher
let session = URLSession.shared
let request = URLRequest(url: url)
URLSession.DataTaskPublisher(request: request, session: session)
.sink(receiveCompletion: { completion in
switch completion {
case .failure:
print("Combine DataTaskPublisher Error")
case .finished:
print("Combine DataTaskPublisher Finish")
}
}, receiveValue: { value in
print("Combine DataTaskPublisher : \(value)")
})
.store(in: &cancellables)
// dataTaskPublisher Property
URLSession.shared.dataTaskPublisher(for: url)
.sink(receiveCompletion: { completion in
switch completion {
case .failure:
print("Combine DataTaskPublisher Error")
case .finished:
print("Combine DataTaskPublisher Finish")
}
}, receiveValue: { value in
print("Combine DataTaskPublisher : \(value)")
})
.store(in: &cancellables)
Last updated
Was this helpful?