Javascript Promise.join不使用箭头函数

Javascript Promise.join不使用箭头函数,javascript,node.js,bluebird,Javascript,Node.js,Bluebird,我一直在开发一个函数,该函数返回多个数据库表的所有值。我正在尝试主动采用稳定的es6功能,这似乎是实现arrow功能的好机会。我使用bluebird作为承诺,sequelize作为我的ORM(它会为他们的DB查询返回bluebird承诺) 这不管用 /** * But this does */ 'use strict'; const Promise = require('bluebird'); const models = require('../database'); const re

我一直在开发一个函数,该函数返回多个数据库表的所有值。我正在尝试主动采用稳定的es6功能,这似乎是实现arrow功能的好机会。我使用bluebird作为承诺,sequelize作为我的ORM(它会为他们的DB查询返回bluebird承诺)

这不管用

/**
 * But this does
 */
'use strict';

const Promise = require('bluebird');
const models = require('../database');

const resource = {
    browse: function browse() {
        function getTableOne() {
            return models.table_one.findAll();
        }

        function getTableTwo() {
            return models.table_two.findAll();
        }

        function getTableThree() {
            return models.table_three.findAll();
        }
        return Promise.join(
                getTableOne(),
                getTableTwo(),
                getTableThree(),
                function(table_one, table_two, table_three) {
                    const response = {
                        table_one,
                        table_two,
                        table_three,
                    };

                    return response;
                });
    },
};

module.exports = resource;

我还尝试将对模型的调用封装在圆括号中,并显式返回它们。这不是一个很大的优先事项,因为我有一个解决办法,但我想获得更好的了解最新的功能。谢谢。

承诺。加入
需要一个或多个承诺,而不是功能

Promise.join(getTableOne(), ...)
调用
getTableOne
并将返回值(一个承诺)传递给
promise.join

但是

将函数本身传递给Promise.join,而不是Promise。它不调用函数

此处不需要箭头功能:

Promise.join(models.table_one.findAll(), ...)

Promise.join
需要一个或多个承诺,而不是函数

Promise.join(getTableOne(), ...)
调用
getTableOne
并将返回值(一个承诺)传递给
promise.join

但是

将函数本身传递给Promise.join,而不是Promise。它不调用函数

此处不需要箭头功能:

Promise.join(models.table_one.findAll(), ...)

这并不是说这是最佳实践,而是以下技术工作生命:Promise.join(()=>models.table_one.findAll())(),…)不是说这是最佳实践,而是以下技术工作生命:Promise.join(()=>models.table_one.findAll())(),…)