/ / PromiseKit voliteľné reťazenie Swift - ios, swift, promisekit

PromiseKit voliteľné reťazenie Swift - ios, swift, promisekit

Ako môžem urobiť voliteľné sľuby reťazením? napr. mám dve sľuby a na druhú stranu musím skontrolovať iba niektoré podmienky z prvých sľubných výsledkov.

promise1(). then { result -> Promise? in
if result.success {
return promise2()
}
return nil
}
.then { secondResult -> Void in

}
.always {...}
.catch ...

Ale keď píšem niečo ako tento kompilátor si myslí, že tento typ je Promise ?, nie Any (bit "Any" mám na mysli akúkoľvek inú triedu / štruktúru)

Ako teda môžem urobiť reťazenie? A vždy by mal existovať jeden a vždy jeden manipulátor úlovkov.

odpovede:

0 pre odpoveď č. 1

Myslím, že chcete niečo takéto:

let p = Promise<Int>() { fulffill, reject in
fulffill(0)
}.then { result -> Promise<Any>? in
if result == 0 {
return Promise(value: 5)
} else if result == 1 {
return Promise(value: "test")
} else {
return nil
}
}.then { secondResult -> Void in
print("(secondResult?.value)")
}.always {
print("Final!")
}

ak výsledok je 0 secondResult.value bude Int s hodnotou 5, ak výsledok je 1 secondResult.value bude „test“. Potom môžete použiť výsledok v druhom prísľube na prijatie rozhodnutia.