gpt4 book ai didi

javascript - Bluebird 在 return 语句中不可分配给 Bluebird

转载 作者:行者123 更新时间:2023-12-03 22:41:47 24 4
gpt4 key购买 nike

我试图用 .try(function(){}).catch(function(){}) 块返回一个 promise 。我的问题是由我的 promise 类型引起的。

    deleteProcess(processId: number): Promise<ProcessInstance> {
let deletedProcess = this.Process.findById(processId);

return Promise
.try(function () {
this.Process.destroy({
where: {
processId: processId
}
})
.then(function (rowDeleted) {
if (rowDeleted === 1) {
console.log('Deleted successfully');
return this.getDeletedProcess();
}
})
.catch(function (err) {
console.log(err);
})
});

function getDeletedProcess(): ProcessInstance {
return this.deletedProcess;
};
};

错误说,“Bluebird void”类型不能分配给“Bluebird ProcessInstance”类型

最佳答案

这篇文章对解决问题真的很有帮助

Bluebird.JS Promise: new Promise(function (resolve, reject){}) vs Promise.try(function(){})

这解决了这个问题:

    return new Promise<ProcessInstance>(
(function (resolve, reject) {
this.Process.destroy({
where: {
processId: processId
}
})
.then(function (rowDeleted) {
if (rowDeleted === 1) {
console.log('Deleted successfully');
return this.getDeletedProcess();
}
})
reject(function (err) {
console.log(err);
})
})
)

关于javascript - Bluebird<void> 在 return 语句中不可分配给 Bluebird<Process Instance>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40340633/

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