Autor Zpráva
weroro
Profil
Zdravím.

Mám možno veľmi začiatočnícku otázku ohľadom výstupu funkcií, konkrétne ako správne určiť, čo má byť vrátené ako error a čo ako správny výstup.

Modelová situácia: Mám funkciu, ktorá vracia Promise (resolve, reject). V tele Promise sa vykonáva logika, kde môžu nastať 3 stavy s číselnou hodnotou.

Success = 1
Not Found = 2
Invalid data = 3

Moja otázka znie: Majú byť tieto 3 stavy dostupné všetky v resolve alebo stavy 2 a 3 presunúť do reject? Logicky by to malo asi byť v reject, keďže sa jedná o chybový stav.

Ukážka s resolve:
example()
    .then(resultCode => {
        if (resultCode === 1)
            console.log('success');
        else if (resultCode === 2)
            console.log('not found');
        else if (resultCode === 3)
            console.log('invalid data');
    });

Ukážka s resolve a reject:
example()
    .then(resultCode => {
        if (resultCode === 1)
            console.log('success');
    })
    .catch(resultCode => {
        if (resultCode === 2)
            console.log('not found');
        else if (resultCode === 3)
            console.log('invalid data');
    })

Možno to vyzerá, že si robím srandu, ale bohužiaľ. Na jednu stranu mi príde v poriadku mať všetky stavy dostupné v jednom kontexte (viem použiť napr switch a pod., prípadne ich nejak kombinovať). Na druhú stranu mi príde viac logické oddeliť success "vrstvu" od error "vrstvy".

Ako sa vy rozhodujete pri podobných situáciách? Nejaký váš myšlienkový pochod.

Ďakujem za váš čas pri zamyslení sa nad touto mojou zváštnou dilemou.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0