簡體   English   中英

Javascript Kriskowal Q JS承諾不起作用

[英]Javascript Kriskowal Q JS promise not working

我已經使用kriskowal / q模塊創建了一個promise,但是當我嘗試使用它時,它不會進入任何函數,無論是快樂路徑還是錯誤路徑。

這是我的諾言創作課

var Q = require('q');

var Test = function () {

};

Test.prototype = (function () {
    var testt = function () {
        var deferred = Q.defer();
        var x = 5;
        if (x === 5){
            deferred.resolve('resolved');
        }else{
            deferred.error(new Error('error'));
        }
        return deferred.promise;
    };
    return {
        testt : testt
    }
}());

module.exports = Test;

這就是我要使用它的方式

var Test = require('../src/js/test.js');

describe("Test", function () {
    "use strict";

    var test = null;

    beforeEach(function () {
        test = new Test();
    });

    it("should return the promise", function () {
        test.testt().then(
            function (a) {
                console.log(a);
            },
            function (b) {
                console.error(b);
            }
        );
    });
});

由於這是一個茉莉花測試類(如果您不熟悉茉莉花),因此“ it”函數內部的邏輯是我使用諾言的邏輯。 而“ testt”是我創建承諾的功能。 為了更清楚,我附上了整個代碼。

問題:它不打印a或b

it立即完成,而不是在承諾的解決/拒絕之后。

it("should return the promise", function (done) {
    test.testt().then(
        function (a) {
            console.log(a);
            done();
        },
        function (b) {
            console.error(b);
            done();
        }
    );
});

有關更多信息,請參見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM