我曾经在api调用之外使用$ promise值,但是我的定义是未定义的。请帮助我如何在外面获得价值。
getPeople($scope.selectedId).fetch({
}).$promise.then(
function (value) {
$scope.peopledata = value.data[0];
console.info($scope.peopledata); // here I can get data
},
function (err) {
});
console.info($scope.peopledata);
//但在这里我得到了未定义的
如何在外面获取数据?
答案 0 :(得分:2)
我认为你对Promise是什么以及它们如何运作感到困惑。
getPeople
调用后的语句会立即执行,而promise可能尚未解析(请记住,它是异步的)。因此,您试图在控制台上未初始化的位置显示某些内容。使用异步函数时,代码顺序本身并不重要。
根据您发布的内容,您的代码按预期工作。另见:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise