3
我有與貓鼬這我試圖從回調來重寫承諾創建一個對象服務的方法:的NodeJS - 藍鳥promise.resolve(值)是未定義
var Booking = require("../models/booking");
var Promise = require('bluebird');
var notificationEmitter = require('../events/notificationEmitter').NotificationEmitter;
exports.createBooking = function(/* many arguments */){
var booking = new Booking();
... omitted details of adding to booking object...
booking.save().then(function(booking){
notificationEmitter.emit('createdBooking', booking);
return Promise.resolve(booking);
}).catch(function(err){
return Promise.reject(err);
});
};
而且在我的單元測試:
bookingService.createBooking(/* all the required values */)
.then(function(booking){
assert.notEqual(booking, null);
done();
}).catch(function(err){
console.log(err);
assert.fail();
done();
});
不過,我不斷收到錯誤:
TypeError: Cannot call method 'then' of undefined
從我的單元測試。我已調試並且最後一行命中爲
return Promise.resolve(booking);
爲什麼我沒有收到退還的承諾?
打開警告!藍鳥會爲你找到這些錯誤。 –