2015-05-11 22 views
6

Sto usando pouchdb sul lato client (app mobile ionica) couchdb sul lato server.Come attendere fino a quando PouchDB si collega correttamente

Devo eseguire l'operazione dopo che pouchdb è stato creato e sincronizzato correttamente con couchdb.

quindi, come posso aspettare che pouchdb completi l'attività iniziale, dopodiché dovrebbe iniziare solo l'esecuzione del mio lato client.

Attualmente la busta funziona in modo asincrono quindi prima che la busta inizializzi la mia applicazione inizia l'esecuzione e sto ricevendo errori per pouchdb.

+0

Hai provato a usare un .then. quindi supponi di avere $ scope.connect = function() { var req = {opzioni}; $ http (req) .success (callback) .error (callback) .then (callback) } La funzione di callback .then non verrà eseguita fino a quando tutti i dati non verranno ripristinati correttamente e il successo e l'errore sono stati eseguiti. Controlla questo per maggiori informazioni http://www.peterbe.com/plog/promises-with-$http –

+0

Grazie jess, okay allora ho bisogno di mettere tutto il codice nel blocco quindi che voglio eseguire dopo pouchdb si connette. destra? –

+0

sì, dovrebbe funzionare. Ecco un esempio. db.get ('mittens'). Then (function (doc) { // okay, doc contiene il nostro documento }). Catch (function (err) { // oh noes! Abbiamo ricevuto un errore }) ; –

risposta

1

Quando si lavora con funzioni asincrone come attendere un respone da un server in JavaScript, si utilizzano promesse o callback per attendere una risposta.

dal pouchdb docs possiamo leggere che forniscono un'API completamente asincrona.

richiamata versione:

db.get('mittens', function (error, doc) { 
    if (error) { 
    // oh noes! we got an error 
    } else { 
    // okay, doc contains our document 
    } 
}); 

Promessa versione:

db.get('mittens').then(function (doc) { 
    // okay, doc contains our document 
}).catch(function (err) { 
    // oh noes! we got an error 
});