Example #1
0
    // 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;
    }
Example #2
0
    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);
      });
    });
Example #3
0
			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) {