简体   繁体   中英

Javascript Kriskowal Q JS promise not working

I have created a promise using kriskowal/q module but when i try to use this it does not go into any function either happy path or error path.

here is my promise creation class

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;

and this is how i am going to use it

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);
            }
        );
    });
});

since this is a jasmine test class if your not familiar with jasmine, what is inside 'it' function is the logic how i am using the promise. And the 'testt' is the function where i create the promise. for more clarification i have attached the entire code.

Issue : It does not print either a or b

Your it is finishing immediately, instead of after the promise's resolution/rejection.

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

See here for more info.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM