如何将此函数转换为不使用 Promise 构造函数反模式

nas*_*100 3 javascript promise

我问了这个问题,并被告知要避免 Promise 构造函数反模式。我通读了链接的文章,但我不确定如何不使用反模式。这是函数:

db.getUserCount = function () {
    return new Promise (function (resolve, reject) {
    db.users.count().then(function (result) {
        resolve (result);
    }, function(e) {
        reject (e);
    });
});
Run Code Online (Sandbox Code Playgroud)

我所有的数据库查询都像上面那样编码。这是我不使用反模式的尝试,但由于我不完全理解它,我认为这种方式也不正确:

db.getUserCount = function () {
    return new Promise (function (resolve, reject) {
        db.users.count().then(function (result) {
            return (result);
        }).then(function(result) {
            resolve(result);
        }).catch(function(err) {
            reject(err);
        });
    });
};
Run Code Online (Sandbox Code Playgroud)

因为我想写出好的代码,如果有人能花一点时间向我展示一个不使用反模式来使用上述函数的例子,那就太好了。

rob*_*lep 5

由于db.users.count()似乎已经返回了一个承诺,你可以这样做:

db.getUserCount = function () {
    return db.users.count();
});
Run Code Online (Sandbox Code Playgroud)

不需要将它包装在额外的承诺中(使用new Promise(...))。