【发布时间】:2016-04-03 07:46:40
【问题描述】:
有没有办法从 .then 承诺的结果中获取数据?
我知道我发布的内容是错误的,有什么办法吗?
该指令用于检查用户是否存在于数据库中,我在 check_username.php 中编造了错误以在找到它时发送 type=1,如果不存在则返回 2。什么我正在尝试做的是显示 404 页面或实际的个人资料页面(如果找到)。这基本上就是我试图在该功能中完成的只是查找用户是否存在并显示个人资料页面或 404 并将 var 发送到“templateUrl”以将模板放置在个人资料页面中。有更好的方法吗?
app.directive('profileDirective',function($http, $stateParams){
var promise=$http.post('../../api/functions/check_username.php', JSON.stringify($stateParams.u) );
promise.then(function(msg){
if(msg.data.type=='2'){
results = 'responses/404.php';
}
else if (msg.data.type=='1') {
results = 'partials/profile/tpl/profile.head.tpl.php?u=' + $stateParams.u;
}
});
console.log(results);
});
非常感谢,谢谢
【问题讨论】:
-
老实说,我看不出有任何用例表明这是个好主意。当你在做异步 javascript 时,你必须坚持使用异步 javascript。根据您想做什么,应该有一种异步方法。
-
如果我明白你的要求,在
promise声明工作之前不会声明var result;吗? -
我认为你可以做到,但你必须在承诺正文中发出一个事件,然后在你的指令正文中稍后捕获它几行。看起来你可以在那里访问它,但我必须同意 Clément,这是一种奇怪的做事方式。
-
您可以将结果 return 以 chain 到另一个
.then函数,但不能将其“输出”到光纤 (轻量级线程)创建了承诺。.then函数总是在不同的光纤上执行。但是,您可以链接这些纤维。你想达到什么目的?如果您告诉我们,我们可以为您提供帮助。 -
此指令用于检查用户是否存在于数据库中,我在 check_username.php 中编写了错误以在找到它时发送 type=1,如果不存在则它将返回一个 2. 我想要做的是显示 404 页面或实际的个人资料页面(如果找到)。这基本上就是我试图在该功能中完成的只是查找用户是否存在并显示个人资料页面或 404 并将 var 发送到“templateUrl”以将模板放置在个人资料页面中。有更好的方法吗?
标签: javascript angularjs json dynamic dependency-injection