Sto usando Node.js con il client node-mysql di felixge. Non sto usando un ORM. Sto testando con Vows e voglio essere in grado di prendere in giro il mio database, probabilmente usando Sinon. Dal momento che in realtà non ho un DAL di per sé (a parte il node-mysql ), non sono davvero sicuro di […]
Quindi, sto testando un componente che si basa su un event-emitter. Per farlo ho trovato una soluzione usando Promises con Mocha + Chai: it(‘should transition with the correct event’, (done) => { const cFSM = new CharacterFSM({}, emitter, transitions); let timeout = null; let resolved = false; new Promise((resolve, reject) => { emitter.once(‘action’, resolve); emitter.emit(‘done’, […]
Quindi, voglio che il mio primo livello di cattura sia quello che gestisce l’errore. Esiste comunque la possibilità di propagare il mio errore fino alla prima presa? Codice di riferimento, non funzionante (ancora): Promise = require(‘./framework/libraries/bluebird.js’); function promise() { var promise = new Promise(function(resolve, reject) { throw(‘Oh no!’); }); promise.catch(function(error) { throw(error); }); } try […]
Ho una class javascript e ogni metodo restituisce una promise Q Voglio sapere perché this non è definito in method2 e method3 . C’è un modo più corretto per scrivere questo codice? function MyClass(opts){ this.options = opts; return this.method1() .then(this.method2) .then(this.method3); } MyClass.prototype.method1 = function(){ // …q stuff… console.log(this.options); // logs “opts” object return deferred.promise; […]
Ho visto concatenare un numero arbitrario di promesse in Q ; la mia domanda è diversa. Come posso creare un numero variabile di chiamate, ognuna delle quali restituisce in modo asincrono, in ordine? Lo scenario è un insieme di richieste HTTP, il cui numero e tipo è determinato dai risultati della prima richiesta HTTP. Mi […]
So come gestire gli errori specifici nelle promesse ma a volte ho pezzi di codice che assomigliano a questo: somePromise.then(function(response){ otherAPI(JSON.parse(response)); }); A volte, ricevo JSON non valido che provoca un errore invisibile qui quando JSON.parse throw s. In generale, devo ricordare di aggiungere un gestore .catch ad ogni singola promise nel mio codice e […]
Sto studiando lo schema delle promesse e usando q di kriskowal per node.js, avendo questo frammento: var deferred = Q.defer(); try { messageData = JSON.parse(message); } catch (e) { global.logger.warn(‘Error parsing JSON message.’); deferred.reject(e); } … if (some_reason) deferred.resolve(something); … return deferred.promise; Cosa succede se entrambi i parser falliscono e some_reason è vero? L’esecuzione procederà […]
Sono con Node.js e TypeScript e sto usando async/await . Questo è il mio caso di prova: async function doSomethingInSeries() { const res1 = await callApi(); const res2 = await persistInDB(res1); const res3 = await doHeavyComputation(res1); return ‘simle’; } Mi piacerebbe impostare un timeout per la funzione generale. res1 dire se res1 impiega 2 secondi, […]
Nel mio codice, basato su una condizione specifica, vorrei saltare alla funzione done , indipendentemente da tutte le funzioni. La versione originale di questa domanda è nelle modifiche. Quello che segue è il problema reale con cui sto trattando. Ci dispiace per l’inconvenienza Problema reale: Sto leggendo un file e lo sto elaborando. Se il […]
Node.js dalla versione 7 ha async / await zucchero sintattico per la gestione delle promesse e ora nel mio codice il seguente avviso arriva abbastanza spesso: (node:11057) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): ReferenceError: Error: Can’t set headers after they are sent. (node:11057) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections […]