Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 承诺、延迟和可变_Angularjs - Fatal编程技术网

Angularjs 承诺、延迟和可变

Angularjs 承诺、延迟和可变,angularjs,Angularjs,我读过关于允诺和延迟的书,但不能真正理解。 我的问题很简单。我想给变量赋值。但价值来自遥远的地方。这是我的密码: var page = "init"; var url = "http://url/feed"; $http(url).success(function(response) {page = response.data.page;}); $scope.main = {page:page}; 据我所知,$scope.main.page将获得“init”值,因为第三行代码只是一个承诺。请帮

我读过关于允诺和延迟的书,但不能真正理解。 我的问题很简单。我想给变量赋值。但价值来自遥远的地方。这是我的密码:

var page = "init";
var url = "http://url/feed";
$http(url).success(function(response) {page = response.data.page;});
$scope.main = {page:page};
据我所知,$scope.main.page将获得“init”值,因为第三行代码只是一个承诺。请帮忙

var url = "http://url/feed";

$scope.main = { page: "init" };

$http(url).success(function(response) {
  $scope.main.page = response.data.page;
});

如果您不清楚异步代码在javascript中是如何工作的,我强烈建议您进行以下简短的讨论:

$http(url).success(函数(响应){$scope.main={page:response.data.page})承诺是异步的,这意味着第4行在从远程为页面分配值之前执行。@PSL我能理解您的答案。。但是我们是否有其他方法使第4行等待值?表示不异步运行。。我不懂这些话。。对不起,我的英语不好。请使用resolve,它将在您的控制器之前加载。@Yang Li,您能详细解释一下resolve吗。。我已经用过了,但是如何得到值。promise返回空对象。