javascript - Bluebird promise 决心扬 sails

标签 javascript node.js sails.js bluebird resolve

我正在尝试解析一个空数组:

function getAncestors(parentId) {
    return new Promise(function(resolve, reject) {
        if (!!parentId) {
            Category.findOne(parentId).then(function(parent) {
                parent.ancestors.push(parentId);
                resolve(parent.ancestors);
            }).catch(function(err) {
                reject(err);
            });
        } else {
            resolve([]);
        }
    });
};

它可以工作,但当解析([])发生时,我的 sails 控制台最终记录未定义。

我做错了什么?

最佳答案

我建议重写为:

function getAncestors(parentId) {
    if (!!parentId) {
        return Category.findOne(parentId).then(function(parent) {
            parent.ancestors.push(parentId);
            return parent.ancestors;
        });
    } else {
        return Promise.resolve([]);
    }
};

关于javascript - Bluebird promise 决心扬 sails ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39067689/

相关文章:

javascript - 如何在我的 Node.js 服务器上验证 GKLocalPlayer

javascript - 从一个 gulpfile.js 从另一个 gulpfile.js 运行 gulp 任务

sails.js - 有没有一种快速而肮脏的方法来截断 Waterline 集合?

javascript - 使用通用文件导入ExtJS lib

node.js - Mongoose ,在文档数组中查找项目

javascript - 我怎样才能使 "Wait, it' s 处理..!”系统?

mysql - Nodejs 中的日期时间偏移

javascript - 如何在 join sails js 中添加另一个字段

javascript - 重构 Jquery 函数以使其可重用

javascript - 未捕获( promise 中)TypeError : Cannot read property 'setState' of undefined