Javascript 在AngularJS中查询后运行代码
我已经创建了一个小项目,但我有一些问题。我想在查询后运行一些JavaScript代码。我的代码如下:Javascript 在AngularJS中查询后运行代码,javascript,angularjs,Javascript,Angularjs,我已经创建了一个小项目,但我有一些问题。我想在查询后运行一些JavaScript代码。我的代码如下: Book.get({ id: $stateParams.id, min: 0, max: 3 }).$promise.then(function(data){ vm.list=data; }).finally(function () { }); vm.top=vm.list.name; vm.top未定义,因为查询尚未返回。这不是处理异步调用的方式。原因是(简
Book.get({
id: $stateParams.id,
min: 0,
max: 3
}).$promise.then(function(data){
vm.list=data;
}).finally(function () {
});
vm.top=vm.list.name;
vm.top
未定义,因为查询尚未返回。这不是处理异步调用的方式。原因是(简而言之)JavaScript引擎首先执行同步代码,然后执行异步代码
理想情况下,您应该等到它们完成并将所需的工作放入它们的回调函数中。所以在这里你也可以
中的代码,然后调用Book.get()函数的
这不是处理异步调用的方式。原因是(简而言之)JavaScript引擎首先执行同步代码,然后执行异步代码 理想情况下,您应该等到它们完成并将所需的工作放入它们的回调函数中。所以在这里你也可以
中的代码,然后调用Book.get()函数的
一切都要遵守诺言;由于它是一个异步回调,它可以在几毫秒或几分钟后返回-您不能在它之后分配变量
vm.top
是未定义的,因为它在您的回调之前运行,请确保一切都在承诺范围内;由于它是一个异步回调,它可以在几毫秒或几分钟后返回-您不能在它之后分配变量vm.top
未定义,因为它在回调之前运行
// 1. First way
var getBook = Book.get({id:$stateParams.id,min:0,max:3}).$promise.then(function(data){
vm.list=data;
// Put your code here
}).finally(function () {
});
// 2. Second way
getBook.then(function(){
vm.top= vm.list && vm.list.name;
});