已解决Promise不执行then函数

时间:2017-01-02 17:56:22

标签: javascript node.js promise q

我正面临一个问题,即在我已解决的承诺中没有执行下一个链式then

我的代码如下所示

WordDocument.prototype.Open = function (data) {
        var _this = this;
        debugger;
        var that = this;
        var input = {
            onBeforeClose: function (data, callback) {
            },
            onBeforeSave: function (data, callback) {
                //alert('on Save');
                //this.Save(data);
            },
            path: "\\ElectronClient\\cm.doc"
        };
        var deferred = Q.defer();
        this.getDocument(data.docusId)
            .then(function (httpRes) {
                debugger;
                var response = JSON.parse(httpRes);
                return _this.saveDocumentInTemp(response);
            }).then(function (fileRes) {
                debugger;
                return _this.getInteropHandle(input);
            })["catch"](function (err) {
                deferred.reject(err);
            })["finally"](function (f) {
                debugger;
            });
        return deferred.promise;
    };

第一个then正在执行完全正常......并且then函数正在正确执行...但是你可以看到我已经返回了

的承诺
_this.saveDocumentInTemp(response);

到下一个链接then ..但是第二个then永远不会被执行..

_this.saveDocumentInTemp(response);的代码如下所示:(未发布确切代码)

WordDocument.prototype.saveDocumentInTemp = function (response) {
    var deferred = Q.defer();
    deferred.resolve(true);
    return deferred.promise;
};

0 个答案:

没有答案