JavaScript Valori "promettenti"


Esempio

Il metodo statico Promise.resolve può essere utilizzato per avvolgere i valori in promesse.

let resolved = Promise.resolve(2);
resolved.then(value => {
    // immediately invoked
    // value === 2
});

Se il value è già una promessa, Promise.resolve semplicemente lo Promise.resolve .

let one = new Promise(resolve => setTimeout(() => resolve(2), 1000));
let two = Promise.resolve(one);
two.then(value => {
    // 1 second has passed
    // value === 2
});

In effetti, il value può essere qualsiasi "percorribile" (oggetto che definisce un metodo then che funziona sufficientemente come una promessa conforme alle specifiche). Ciò consente a Promise.resolve di convertire oggetti di terze parti non attendibili in promesse di parte 1 attendibili.

let resolved = Promise.resolve({
    then(onResolved) {
        onResolved(2);
    }
});
resolved.then(value => {
    // immediately invoked
    // value === 2
});

Il metodo statico Promise.reject restituisce una promessa che immediatamente rifiuta con il reason .

let rejected = Promise.reject("Oops!");
rejected.catch(reason => {
    // immediately invoked
    // reason === "Oops!"
});