【问题标题】:Returning a bluebird promise after sequilize db operation续集数据库操作后返回蓝鸟承诺
【发布时间】:2016-11-02 14:46:26
【问题描述】:

我有一个应该删除数据库行的函数。该函数获取应删除的行的 id。该函数还应返回已删除的行以执行一些文本输出。

    deleteProcess(processToDeleteId: any): Promise<ProcessInstance> {
    let deletedProcess;
    let value;

    for (let key in processToDeleteId) {
        if (processToDeleteId.hasOwnProperty(key)) {
            value = processToDeleteId[key];
        }
    }

    this.sequelize.query("select * from Processes where processId = ?",
        { replacements: [value], type: this.sequelize.QueryTypes.SELECT })
        .then(function (processes) {
            for (let item in processes) {
                if (processes.hasOwnProperty(item)) {
                    deletedProcess = processes[item];
                    console.log(deletedProcess);
                }
            }

        })
        .delay(20);

    let that = this;
    return new Promise<ProcessInstance>(
        (function (resolve, reject) {
            that.sequelize.query("delete from Processes where processId = ?",
                { replacements: [value], type: that.sequelize.QueryTypes.DELETE })
                .then(function () {
                    console.log('Deleted successfully');
                    return deletedProcess;
                })
            reject(function (err) {
                console.log(err);
            })
        })
    )
};

问题是该函数在删除项目时运行良好,它还加载了被删除的行,但不返回该行

【问题讨论】:

    标签: typescript sequelize.js bluebird


    【解决方案1】:

    你永远不会调用resolve,如果你想填充通过promise构造函数创建的promise,你需要调用resolve。也就是说,我认为您不需要在这里使用 Promise 构造函数。

    如果你这样做有效果吗?

        return that.sequelize.query("delete from Processes where processId = ?",
            { replacements: [value], type: that.sequelize.QueryTypes.DELETE })
            .then(function () {
                console.log('Deleted successfully');
                return deletedProcess;
            })
            .catch(console.log)
    

    顺便说一句,如果你使用arrow function,你不需要做let that = this;

    【讨论】:

      猜你喜欢
      • 2014-02-13
      • 2016-04-30
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 2016-06-10
      相关资源
      最近更新 更多