Wie verwende ich das Modul "q", um den Mungo-Code umzugestalten?

Ich benutze Mungo, um einige Daten in Mongodb einzufügen. Der Code sieht so aus:

<code>var mongoose = require('mongoose');
mongoose.connect('mongo://localhost/test');
var conn = mongoose.connection;

// insert users
conn.collection('users').insert([{/*user1*/},{/*user2*/}], function(err, docs) {
    var user1 = docs[0], user2 = docs[1];

    // insert channels
    conn.collection('channels').insert([{userId:user1._id},{userId:user2._id}], function(err, docs) {
        var channel1 = docs[0], channel2 = docs[1];

        // insert articles
        conn.collection('articles').insert([{userId:user1._id,channelId:channel1._id},{}], function(err, docs) {
            var article1 = docs[0], article2 = docs[1];

        }
    });
};
</code>

Sie können sehen, dass es dort viele verschachtelte Rückrufe gibt, also versuche ich, sie zu verwendenq um es umzugestalten.

Ich hoffe der Code wird so aussehen:

<code>Q.fcall(step1)
.then(step2)
.then(step3)
.then(step4)
.then(function (value4) {
    // Do something with value4
}, function (error) {
    // Handle any error from step1 through step4
})
.end();
</code>

Aber ich weiß nicht, wie ich es machen soll.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage