Strutturazione codice javascript asincrono

2

Sto lavorando su un'applicazione che dipende in gran parte dalle operazioni di dati asincroni. Mi sto occupando di quelli attraverso le promesse.

Tuttavia, mentre il mio codice funziona, ho l'impressione che stia diventando caotico e difficile da mantenere in futuro.

Assumi questo:

validate().then(

// success
function(promise){
    $http.post('stuff.php',data).then(

      function(p){

      },
      function(){

      }
    ) 
},

// failure
function(reason){
    // Assume another promise-depending operation
},

// notification
function(update){

}
);

Come puoi vedere, le chiamate di promessa sono strongmente nidificate. Inoltre, devo affrontare i metodi di risoluzione / rifiuto in ogni passaggio.

Cosa mi manca? come posso migliorare la mia tecnica?

    
posta Sprottenwels 06.01.2014 - 14:14
fonte

1 risposta

3

Sembra che tu stia usando le promesse nello stesso modo in cui qualcuno userebbe le callback. Anche se puoi farlo, non ha senso, anche i callback possono farlo.

La caratteristica principale delle promesse è che i resolver / handler possono restituire valore e consente un concatenamento, prendi in considerazione il seguente esempio:

  function capitalise (word) {
    letters = word.split('');
    letters[0] = letters[0].toUpperCase();
    return letters.join('');
  }  

  function exclamate (word) {
    return word + '!'   
  }

  function log (word) {
    console.log("Word is:", word);
    return word
  }

  // Let's say that getWord is asynchronous operation (say ajax)
  // that returns a promise.
  word = getWord("i want coffee");
  word.then(capitalise).then(exclamate).then(log);
    
risposta data 06.01.2014 - 14:33
fonte

Leggi altre domande sui tag