Q中的无声异常:然后回调?

时间:2015-07-16 06:38:10

标签: javascript promise q

我在调用'然后'中调用null变量的函数时遇到了一些问题。回调Q.promise。

第一个调用(没有使用Q)将显示错误,但第二个调用(wuth Q使用)不会显示错误。

小例子:

var Q = require('q');
var nul = null;
var exp;

(function (exp) {
    var A = (function () {
        function A() {
        };
        A.prototype.foo = function () {
            var d = Q.defer();
            d.resolve('Hello, world');
            return d.promise;
        };
        A.prototype.bar = function (i) {
            switch (i) {
                case 0:
                    /**
                     * That's all ok, "TypeError: Cannot read property 'qqq' of null"
                     */
                    console.log(nul);
                    nul.qqq();
                    console.log('ok');
                    break;
                case 1:
                    /**
                     * it's not ok, I see only result of "console.log(nul)", line 29
                     */
                    this.foo().then(function () {
                        console.log(nul);
                        nul.qqq();
                        console.log('ok');
                    });
                    break;
            };
        };
        return A;
    })();
    exp.A = A;
}) (exp || (exp = {}));

exp.a = new exp.A();
// You should run functions SEPARATELY!!!
exp.a.bar(0);   //  in that case: that's all ok, "TypeError: Cannot read property 'qqq' of null"
exp.a.bar(1);   //  int that case: it's not ok, I see only result of "console.log(nul)", line 29

我不知道如何解决它

0 个答案:

没有答案