enchaîner les promesses avec q.js

J'essaie de comprendre comment la promesse de chaînage des œuvres. Je suis en utilisant q.js. Voici ce que je suis en train de jouer avec.

var Q = require("q"); //npm install q

//the function Q(value) returns a fulfilled promise with the value... I think.
Q(1).then(Q(2)).then(Q(3)).then(Q(4)).then(function(n) {
    console.log(n);
});

Q(1).then(function(n) {
    return Q(2);
}).then(function(n) {
    return Q(3);
}).then(function(n) {
    return Q(4);
}).then(function(n) {
    console.log("done: " + n);
});

Ma question se résume essentiellement en de pourquoi le premier journal 1 alors que le second, l'un des journaux de ce que je m'attends et, fondamentalement, les journaux de 1 à 4. J'avais espéré que la première est un journal 4 au lieu de 1.

Je voulais juste être en mesure d'avoir des méthodes qui retournent des promesses, puis de la chaîne d'ensemble dans une chute d'eau comme la mode - je suppose que je pourrais utiliser asynchrone et d'une cascade, mais je voulais juste savoir si cela pourrait être réalisé w/promesses.

source d'informationauteur Anon