Promesse.tous(...).la propagation n'est pas une fonction lors de l'exécution des promesses en parallèle

Je suis en train de lancer 2 promet en parallèle avec sequelize, et puis afficher les résultats dans une .ejs modèle, mais je reçois ce message d'erreur:

 Promise.all(...).spread is not a function

C'est mon code:

var environment_hash = req.session.passport.user.environment_hash;
var Template  = require('../models/index').Template;
var List      = require('../models/index').List;

var values = { 
    where: { environment_hash: environment_hash,
             is_deleted: 0 
        }                    
};

template = Template.findAll(values);
list = List.findAll(values);


Promise.all([template,list]).spread(function(templates,lists) {

    res.render('campaign/create.ejs', {
        templates: templates,
        lists: lists
    });

});

Comment puis-je résoudre thhis?

.spread() n'est pas un standard promesse de la méthode. Il est disponible dans les Bluebird promesse de la bibliothèque - utilisez-vous? Votre code vous avez inclus ne montre pas que. Vous pouvez aussi simplement utiliser .then(results => {...}) et d'accéder aux résultats que results[0] et results[1].
Merci, je ne le savais pas. J'ai importé BlueBird, et ça fonctionne maintenant.
"I'm trying to run 2 promises in parallel". non tu n'es pas parce que vous ne pouvez pas que le JS est mono-thread. Ce que vous faites affaire avec, c'est que vous ne connaissez pas la promesse sera la fin de la première.
mais il peut toujours être parallèle opérations d'e / s.
Basé sur mon précédent commentaire, j'ai posté une réponse qui vous propose trois solutions différentes. La plus élégante est d'utiliser la destruction de supprimer la nécessité pour .spread() entièrement, même si je continue de recommander Bluebird pour ces raisons: il y a encore des raisons d'utiliser promesse bibliothèques comme Q ou BlueBird maintenant que nous avons ES6 promesses?

OriginalL'auteur Filipe Ferminiano | 2017-03-12