【问题标题】:Angularjs returning dummy promise from function that have no data to return?Angularjs从没有数据返回的函数返回虚拟承诺?
【发布时间】:2015-11-09 17:27:54
【问题描述】:

所以我有清除/删除一些数据的功能。

没有要返回的错误。没有要返回的数据(它不应该在时间函数到达返回时存在)。

需要承诺的代码:

SomeService.close().then(
  function onSuccess() {

如何从 close() 中返回一些有用的 .then 可以使用的东西?

//In SomeService
function close(){
 delete that;
 delete those;
 delete etc;
 return $q.defer().resolve().promise;
}

会给我以下错误:

$q.defer(...).resolve(...) is undefined

【问题讨论】:

    标签: angularjs angular-promise


    【解决方案1】:

    你的语法有点错误,试试:

    function close(){
      delete that;
      delete those;
      delete etc;
      return $q.resolve();
    }
    

    【讨论】:

    • 所以解决不返回这个?这很疯狂。 :( 我的 oneliner 现在变成了 3-liner。
    • 你也可以return $q.resolve() .. 忘记了:)
    • return $q.resolve(); --> Error: $q.resolve is not a function
    • $q.resolve() 在我使用的 Angular 1.3.x 中没有定义。但它的正确答案却不少。
    【解决方案2】:

    您可以为此目的使用 $q.when。

    function close(){
      delete that;
      delete those;
      delete etc;
      return $q.when();
    }
    

    来自docs

    包装一个可能是值或(第 3 方)then-able 的对象 承诺变成一个 $q 承诺。这在您处理 可能是也可能不是承诺的对象,或者承诺是否到来 来自无法信任的来源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      相关资源
      最近更新 更多