当前位置: 首页 > 面试题库 >

在角度创建空的承诺?

于飞飙
2023-03-14
问题内容

我想做这样的事情:

var promise = IAmAEmptyPromise;

if(condition){
    promise = ApiService.getRealPromise();
}

promise.then(function(){
    //do something
});

因此,我想声明一个承诺,可以使用then来解决。但是,此承诺可能会被另一个返回内容的承诺覆盖。以后我想解决诺言是否有内容。这可能吗?我尝试过:

var promise = $q.defer().promise;

if(!$scope.user){
    promise = UserService.create(params);
}

promise.then(function(){
   //either user was created or the user already exists.
});

但是,当用户在场时这不起作用。有任何想法吗?


问题答案:

就像Bixi所写的那样,您可以使用$q.when()将承诺或价值包装到承诺中。如果您传递给的when()是承诺,则将返回该承诺,否则将创建一个新的承诺,并直接使用您传递的值来解决。类似以下内容:

var promise;
if(!$scope.user){
  promise = UserService.create(params);
} else {
  promise = $q.when($scope.user);
}

promise.then(function(user){
  //either user was created or the user already exists.
});


 类似资料:
  • 问题内容: 我正在编写一个测试用例,用于使用Protractor在Angular应用程序的页面中添加商店信息,在这里我最初是在计算已经拥有的商店数量,并且在完成测试块后,我希望该数量增加一,因此通过遵循创建承诺的链接来做到这一点如何在量角器中创建和操纵承诺? 我希望测试结束时商店的数量是相同的。count()正在解决一个承诺,并且商店计数的正确值会打印在testPromise()中,但是当我调用t

  • 问题内容: 我想使用Node Http模块直接调用服务器以设置我的量角器测试。Http基于回调,我想将其变为promise。 例如,我想让这个函数返回promise: 因此,问题是:我需要什么并代替“以某种方式创造承诺”才能使之起作用? 问题答案: 量角器使用WebDriver的承诺,并在“量角器”上全局公开该API。所以你应该能够做 有关完整的WebDriverJS Promise API,请参

  • 问题内容: 我正在使用awesomium制作游戏中的用户界面,有时游戏会加载并执行一段JavaScript,以创建任意新的UI元素。例如 效果很好,当我想创建一些更高级的UI元素(特别是使用angular)时,就会出现问题。例如: 毫不奇怪,这不会创建新的角度视图。它只是将该html添加到文档中,而从未绑定到ChatBoxControl。 我如何才能在这里实现自己的目标? 问题答案: 您应该$ c

  • 我编写了代码,但在构建它之后,我得到了以下内容: core-js@2.6.9 postinstall c:\users\admin\desktop\test code\angfirst\hello-world\node_modules\babel-runtime\node_modules\core-js node scripts/postinstall echo“ignore” core-js@2

  • 见鬼,各位, 我想问一下如何创建一个垂直的表(作为比较表),我可以这样显示数据uch: 我的问题是,如果我想从后端显示数据,它将水平显示,我想垂直显示,就像我想比较两个客户,检查他们是否有相同的数据或其他不同的数据(例如年龄)。 有人能帮我做这样的事情吗(后台前端)??很抱歉我的问题,但我已经尝试了太多,谷歌了,但我找不到任何可以帮助我解决这个问题的东西。 我的想法是:我想从后端获取重复怀疑,并在

  • 本文向大家介绍AngularJS 创建缩小安全的角度控制器,包括了AngularJS 创建缩小安全的角度控制器的使用技巧和注意事项,需要的朋友参考一下 示例 要创建安全的角度控制器,您将更改controller功能参数。 该函数中的第二个参数module.controller应该传递给数组,其中最后一个参数是控制器函数,而在此之前的每个参数都是每个注入值的名称。 这不同于通常的范式。它采用带有注入