Puis-je faire une promesse synchrone dans la bibliothèque JavaScript Q?

Je veux faire quelque chose comme ce qui suit:

delay( 2500 )
  .then( function () { console.log( "Step 1 done" ) } )
  .then( delay( 7500 ) )
  .then( function () { console.log( "Step 2 done" ) } );

Donc la mise en œuvre de retard a été démontré à de nombreuses reprises avant:

function delay( ms ) {
  var deferred = Q.defer();
  setTimeout( deferred.resolve, ms );
  return deferred.promise;
}

Mais si je lance le ci-dessus dans node.js j'obtiens:

... delay of 2500ms
Step 1 done
Step 2 done
... delay of ~7500ms

plutôt que de ce que j'attends de voir:

... delay of 2500ms
Step 1 done
... delay of 7500ms
Step 2 done

Dans les exemples fournis sur https://github.com/kriskowal/q/wiki/Examples-Gallery je ne peux pas trouver des exemples de synchrone fonctions (les fonctions qui renvoient une valeur, sans les rappels impliqués) enchaîné avec la promesse fonctions.

Toutes les idées sur la façon de mélanger dans des actions synchrones avec asynchrone promesses?

J'ai essayé:

function synchronousPromise() {
  var deferred = Q.defer();
  console.log( "Synchronous function call" );
  deferred.resolve();
  return deferred.promise;
}

delay( 2500 )
  .then( function(){synchronousPromise()} )
  .then( function(){delay( 7500 )} )
  .then( function(){synchronousPromise()} );

Et ce sorties:

... delay of 2500ms
Time now is 2013-06-20
Time now is 2013-06-20
... delay of 7500ms

.. toujours pas ce que je suis en train de réaliser.

source d'informationauteur PP.