[英]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.