【发布时间】:2018-11-09 03:09:02
【问题描述】:
我一直在努力兑现承诺。无论我读了多少这个问题的措辞,我都无法解决它。
我有一个实验室类/函数,它具有已部署(布尔值)的属性。我想检查一下是否部署了实验室。我已经有一个实验室对象,因此我调用了 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 而不是返回上面的数据,我应该更新已部署的属性并返回这个吗?还是有其他方法?我试图限制代码,因为我希望得到解释。
【问题讨论】:
-
你可以使用
var proValue = await isLabDeployed(this.id, this.userID) -
基本上你是在做异步同步吗?我觉得这违背了异步的目的/意义?
标签: javascript node.js asynchronous