Paginator-API – iOS
Die Klasse „Paginator“ bietet Methoden zum Durchlaufen eines Datensatzes, der durch einen Aufruf der ServiceNow Tabellen -API über NowTableService zurückgegeben wird. Es handelt sich um das Objekt, das von den NowTableService- paginator()- Methoden zurückgegeben wird. Rufen Sie diese Methode nicht außerhalb dieser Umgebung auf.
| Name | Typ | Beschreibung |
|---|---|---|
| hasNext | Boolean | Kennzeichnung, die angibt, ob eine nächste Seite abzurufen ist. Gültige Werte:
|
| hatVorherige | Boolean | Kennzeichnung, die angibt, ob eine vorherige Seite abzurufen ist. Gültige Werte:
|
| isBusy | Boolean | Kennzeichnung, die angibt, ob das Paginator-Objekt mit dem Abrufen von Daten ausgelastet ist. Gültige Werte:
|
| istFertig | Boolean | Kennzeichnung, die angibt, ob das Paginator-Objekt abgeschlossen ist. Wenn der Paginator zum Beenden konfiguriert ist, beendet der Herausgeber des Paginator-Objekts den Vorgang, wenn die letzte Seite abgerufen wurde. Ein Paginator-Objekt kann nach Abschluss keine Seiten mehr abrufen. Weitere Informationen finden Sie in der Beschreibung des Parameters publisherShouldFinish. Gültige Werte:
|
| itemProPage | Ganzzahl | Anzahl der pro Seite abzurufenden Elemente. Standard: 20 |
| AnzahlSeiten | Ganzzahl | Gesamtzahl der Seiten im Datensatzsatz. Wenn das Paginator-Objekt noch keine Seiten abgerufen hat, wird dieser Parameter auf |
| Seite | Ganzzahl | Aktuelle Seite im paginierten Datensatz. |
| publisher | Zeichenfolge | Herausgeber, der den Stream der paginierten Daten an die Abonnenten bereitstellt. Hinweis: Standardmäßig beendet der Herausgeber nicht. Um dieses Verhalten zu ändern, legen Sie die Eigenschaft publisherShouldFinish auf truefest. |
| HerausgeberSchuldenFinish | Boolean | Kennzeichnung, die angibt, ob der Herausgeber des Paginator-Objekts angehalten werden soll, wenn die letzte Seite abgerufen wurde. Ein Paginator-Objekt kann nach Abschluss keine Seiten mehr abrufen. Gültige Werte:
Standardwert: false |
Paginator – wird durch first() ausgelöst
Ruft die erste Seite der zurückgegebenen Ergebnisse ab.
Wenn diese Methode die erste Seite nicht abrufen kann, wird ein PaginationErrorausgelöst.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
class PaginatorTestViewModel<T: JSONRepresentable>: ObservableObject {
@Published var result: Result<String, Error>?
private let paginator: Paginator<T>
private var subscriptions = Set<AnyCancellable>()
init(paginator: Paginator<T>) {
self.paginator = paginator
subscribeToPaginator()
}
private func subscribeToPaginator() {
paginator.publisher
.receive(on: DispatchQueue.main)
.sink { [weak self] comp in
if case .failure(let error) = comp {
self?.result = .failure(error)
}
} receiveValue: { [weak self] jsonRepresentable in
self?.result = .success(jsonRepresentable.jsonDescription)
}
.store(in: &subscriptions)
}
func first() {
result = nil
do {
try paginator.first()
} catch {
self.result = .failure(error)
}
}
}
Paginator – last()-Auslösungen
Ruft die letzte Seite der zurückgegebenen Ergebnisse ab.
Wenn diese Methode die letzte Seite nicht abrufen kann, wird ein PaginationErrorausgelöst.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
…
func last() {
result = nil
do {
try paginator.last()
} catch {
self.result = .failure(error)
}
}
…
Paginator – Next()-Auslöser
Ruft die nächste Seite der zurückgegebenen Ergebnisse ab.
Wenn keine weiteren Seiten abzurufen sind, löst die Methode einen PaginationErroraus.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
…
func next() {
result = nil
do {
try paginator.next()
} catch {
self.result = .failure(error)
}
}
…
Paginator – previous()-Auslösungen
Ruft die vorherige Seite der zurückgegebenen Ergebnisse ab.
Wenn die Methode die vorherige Seite nicht abrufen kann, wird ein PaginationErrorausgelöst.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
…
func previous() {
result = nil
do {
try paginator.previous()
} catch {
self.result = .failure(error)
}
}
…
Paginator – zurücksetzen ()
Setzt den Paginator auf die erste Seite zurück, gibt jedoch nicht die erste Seite der zurückgegebenen Ergebnisse zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
…
func reset() {
result = nil
paginator.reset()
}
…