Я боролся с обещаниями. Неважно, сколько формулировок этого вопроса я прочитал, я не могу разобраться.
У меня есть лабораторный класс / функция, которая имеет свойство развернутого (булево). Я хочу проверить, развернута ли лаборатория. У меня уже есть лабораторный объект, поэтому я вызываю lab.isDeployed (). Однако, когда это возвращает - он возвращает истину или ложь, однако я больше не могу получить доступ к исходному лабораторному объекту из-за этой асинхронной «функции».
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 вместо возврата данных выше, я должен обновить развернутое свойство и вернуть это? Или есть другой способ? Я пытался ограничить код, поскольку я надеялся на объяснение.