我正在使用承诺库hope.js。
问题是有时它会返回以下错误:
(...).then is not a function
。
我不知道为什么,我不得不做很多修补。
工作方法的代码看起来就像那些没有的方法,唯一不同的是在这种情况下,我正在使用其他库:async.js。
我的代码如下:
控制器:
userstoryservice.deleteTaskByIdRemovedUS(userstoryexists)
.then(function(error, arraysresult) {
if (error)
response.status(error.code).json({
message: error.message
});
else
response.status(200).json({
message: 'deleted successfully});
});
我的服务:
exports.deleteTaskByIdRemovedUS = function deleteTaskByIdRemovedUS(userstoryexists) {
var promise = new Hope.Promise();
var Task = mongoose.model('Task');
var obj = {};
obj.arrTasksIdsRemoved = [];
obj.arrTasksIdsRemovedErrors = [];
async.each(userstoryexists.tasks,
function(item, callback) {
var query = {
_id: item.id
};
Task.deleteTaskById(item.id).then(function(error) {
if (error) {
obj.arrTasksIdsRemovedErrors.push(item.id);
} else {
obj.arrTasksIdsRemoved.push(item.id);
}
callback(); //required
});
},
function(err) {
if (err) {
console.log('Error:' + err);
return promise.done(err, null);
} else {
return promise.done(null, obj);
}
});
} else {
return promise.done(null, obj);
}
return promise;
};
有什么想法吗?
非常感谢你。