// return true/false to state if wasConnected before function connectToNode() { if (connectPromise) { return connectPromise; } connectPromise = new Promise(function (resolve, reject) { if (nodeConnection.connected()) { return resolve(true); } // we don't want automatic reconnections as we handle the reconnect manually nodeConnection.connect(false).then(function () { nodeConnection.loadDomains([domainModulePath], false).then(function () { attachEventHandlers(); resolve(false); }).fail(function (err) { // jQuery promise - .fail is fine reject(ErrorHandler.toError(err)); }); }).fail(function (err) { // jQuery promise - .fail is fine reject(ErrorHandler.toError(err)); }); }); connectPromise.finally(function () { connectPromise = null; }); return connectPromise; }
return childPool.retain(processFile).then(function(child) { child.send({ cmd: 'start', job: job }); var done = new Promise(function(resolve, reject) { function handler(msg) { switch (msg.cmd) { case 'completed': child.removeListener('message', handler); resolve(msg.value); break; case 'failed': case 'error': child.removeListener('message', handler); reject(new Error(msg.value)); break; case 'progress': job.progress(msg.value); break; } } child.on('message', handler); }); return done.finally(function() { childPool.release(child); }); });
spriteSmithBuildPromise.then(function(result) { var whenImageDealtWithPromise = new Promise(function(resolve, reject) { // Save out the spritesheet image if(settings.spriteSheet) { var spriteSheetSavedPromise = outputFile(settings.spriteSheet, result.image, 'binary').then(function() { //console.log("The file was saved!"); // Push all of the chunks back on the pipe chunkList.forEach(function(chunk) { var transformedChunk = chunk.clone(); try { transformedChunk = transformFileWithSpriteSheetData(transformedChunk, result.coordinates, settings.pathToSpriteSheetFromCSS, settings.includeMode, settings.silent, settings.outputIndent); } catch(err) { err.message = 'Something went wrong when transforming chunks: ' + err.message; self.emit('log', err.message); // Emit an error if necessary if(!settings.silent) { self.emit('error', err); } reject(err); } // Attach the spritesheet in case someone wants to use it down the pipe transformedChunk.spritesheet = result.image; // Push it back on the main pipe self.push(transformedChunk); }); }).catch(function(err) { settings.spriteSheetBuildCallback(err, null); reject(err); }); spriteSheetSavedPromise.then(function() { // Call a callback from the settings the user can hook onto if(settings.spriteSheetBuildCallback) { settings.spriteSheetBuildCallback(null, result); } resolve(); }); } else { resolve(); } }); whenImageDealtWithPromise.finally(function() { // "call callback when the flush operation is complete." cb(); }); }, function(err) {