首先,我知道我必須return
承諾避免此警告。我也嘗試按照建議的here in the docs返回null
。考慮這段代碼,我使用它在貓鼬的預存掛鉤,但我已經經歷了在其他地方這樣的警告:藍鳥 - 一個承諾是在處理程序中創建的,但沒有從它返回
var Story = mongoose.model('Story', StorySchema);
StorySchema.pre('save', function(next) {
var story = this;
// Fetch all stories before save to automatically assign
// some variable, avoiding conflict with other stories
return Story.find().then(function(stories) {
// Some code, then set story.somevar value
story.somevar = somevar;
return null;
}).then(next).catch(next); // <-- this line throws warning
});
我也試過(最初)是這樣的:
story.somevar = somevar;
return next(); // <-- this line throws warning
}).catch(next);
但它也不起作用。哦,我不得不提,那我用藍鳥:
var Promise = require('bluebird'),
mongoose = require('mongoose');
mongoose.Promise = Promise;
不是A promise was created in a handler but was not returned from it重複,那傢伙忘記返回一個承諾。
[從成功的jQuery AJAX POST藍鳥未處理的廢品(的可能的複製http://stackoverflow.com/questions/33948597/bluebird-unhandled防止警告-rejection-error-from-successful-jquery-ajax-post) – TylerH