gpt4 book ai didi

javascript - (...).then 不是 Node (expressJS) 中的函数

转载 作者:太空宇宙 更新时间:2023-11-04 00:38:51 25 4
gpt4 key购买 nike

我正在使用 promise 库 hope.js 。问题是有时它会返回以下错误:(...).then 不是函数。我不知道为什么,我不得不做很多修补。

有效方法的代码看起来与没有有效方法的代码类似,唯一的区别是在本例中,我使用的是其他库:async.js

我的代码如下:

Controller :

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

有什么想法吗?

非常感谢。

最佳答案

我找到了answer这说明了为什么会发生这种情况。

问题是 mongoose 返回它自己的 Promise,而不是 ES6 Promise,这会导致冲突。

图书馆的所有者也回答了我,并告诉我同样的问题以及如何修复它:link

感谢大家的关注。

关于javascript - (...).then 不是 Node (expressJS) 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37737636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com