gpt4 book ai didi

javascript - NodeJS - 使用返回的 Promise 更新对象

转载 作者:行者123 更新时间:2023-12-01 01:31:47 25 4
gpt4 key购买 nike

我一直在与 promise 作斗争。无论我读了多少这个问题的措辞,我都无法弄清楚。

我有一个实验室类/函数,其属性为已部署( bool 值)。我想检查一下实验室是否已部署。我已经有一个实验室对象,因此我调用 lab.isDeployed()。然而,当它返回时 - 它返回 true 或 false,但是由于这个异步“功能”,我不再可以访问原始实验室对象。

function lab(id) {
this.deployed = null; //This is the property.
this.isDeployed = function(){
return isLabDeployed(this.id, this.userID).then(function(data){
return data; //Where Data is a query to determine if its deployed.
});
}

这是从另一个方法调用的。

l.isDeployed().then(function(data){
expect(data).to.be.equal(false);;
});

我应该将实验室对象传递回原始方法吗? IE 不应该返回上面的数据,我应该更新部署的属性并返回它吗?或者还有别的办法吗?我试图限制代码,因为我希望得到解释。

最佳答案

尝试做这样的事情:

this.isDeployed() = function() {
return new Promise(
(resolve, reject) => {
isLabDeployed(this.id, this.userID)
.then((data) => {
resolve(data);
});
}
);

然后,您可以将 isDeployed 函数作为 Promise 来调用。

this.isDeployed()
.then((data) => {
// this is where you use your data.
});

否则,您可能需要使用 async/await

const data = await this.isDeployed()

基本上,您希望解析作为 promise 获得的数据。您甚至可以做一些简单的事情,比如。

this.isDeployed() = isLabDeployed(this.id, this.userId)

关于javascript - NodeJS - 使用返回的 Promise 更新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53219304/

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