DatabaseReader

extension DatabaseReader

Combine extensions on DatabaseReader.

  • Returns a Publisher that asynchronously completes with a fetched value.

    // AnyPublisher<[Player], Error>
    let players = dbQueue.readPublisher { db in
        try Player.fetchAll(db)
    }
    

    Its value and completion are emitted on the main dispatch queue.

    Declaration

    Swift

    public func readPublisher<Output>(
        value: @escaping (Database) throws -> Output)
        -> AnyPublisher<Output, Error>

    Parameters

    value

    A closure which accesses the database.

  • Returns a Publisher that asynchronously completes with a fetched value.

    // AnyPublisher<[Player], Error>
    let players = dbQueue.readPublisher(
        receiveOn: DispatchQueue.global(),
        value: { db in try Player.fetchAll(db) })
    

    Its value and completion are emitted on scheduler.

    Declaration

    Swift

    public func readPublisher<S, Output>(
        receiveOn scheduler: S,
        value: @escaping (Database) throws -> Output)
        -> AnyPublisher<Output, Error>
        where S : Scheduler

    Parameters

    scheduler

    A Scheduler.

    value

    A closure which accesses the database.