我已经阅读了一些关于承诺的文章和问题,但我仍然无法理解它们。这是我想要做的:
我的应用程序应该从设备请求属性。属性可以表示为单个值,也可以表示为数组。每个属性都有属性,这些属性给我提供有关它的信息(比如它是一个数组吗,它是可写的吗,等等)。
所以我的第一个尝试是先读取属性的属性。因此,我可以查看是否需要读取单个值或数组(例如)。
一切都与websockets一起工作,所以我没有使用angulars $http服务。
var valueRequests = [];
angular.forEach(properties, function (property, key) {
requestPropertyAttributes(property).then(function (result) {
if (result.isList) {
valueRequests.push(requestPropertyList(property));
}
else {
valueRequests.push(requestPropertyValue(property));
}
});
});
$q.all(valueRequests).then(function () {
//do sth. after all data was read
});
好吧,我得到的只是一些错误(它显示list where are value和/或反之亦然),并且$q.all()不会触发。
我的请求函数返回承诺。
这是正确的尝试,还是我在某处失败了?正如我所说的,我对promises不是很确定,所以我在理解这里的机制时可能会有问题。
感谢您的帮助:)
https://stackoverflow.com/questions/26362295
复制相似问题