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

如何将Angular Promise转换为jQuery延迟对象

谢翰学
2023-03-14
问题内容

我想将我的模块/
SDK中的promise返回到非角度javascript。例如,如果我将承诺返回给jQuery,则可能应该发送jQuery延迟对象。如何将Angular
promise转换为jquery promise / deferred obj。

任何建议,不胜感激。


问题答案:

免责声明 :jQuery的承诺不与其他图书馆发挥不错-在 所有 。jQuery不会自行吸收其他第三方的承诺。另一方面,Angular $ q
promise-将会,因此,只要您有选择,就将jQuery promise吸收为Angular
promise,反之亦然。(如果您看到此免责声明,并且3.0已经发布,则jQuery 3.0中的所有这些更改都会发生-请发表评论)。

将jQuery Promise转换为Angular Promise:

var angularPromise = $q.when(jQueryPromise); // eg: $q.when($.get(...));

将jQuery Promise转换为本地或Bluebird Promise:

var promise = Promise.resolve(jQueryPromise); // eg: Promise.resolve($.get(..));

将Promises / A +投诉承诺(例如$ q Angular承诺或Bluebird承诺或本机承诺)转换为jQuery承诺:

function convert(p){
    var d = $.Deferred();
    p.then(function(val){
       d.resolve(val);
    }, function(err){ 
       d.reject(err); 
    });
    return d.promise();
}

var jqPromise = convert($http.get(...)); // example usage

// you might be tempted to think you can easily do:
var jqPromise = $.when($http.get(...));
// however - this will will fail inconsistently due to differences between 
// jQuery and Angular promises

同样值得注意的是 -Angular Promise会消耗jQuery Promise

$http.get(...).then(function(id){
    return $.get("http://..."+id); // will work, though pointless because $http.get
}).then(function(result){
     // contains result of $.get call here
});


 类似资料:
  • 问题内容: jQuery 1.5带来了新的Deferred对象和附加的方法,以及。 对于那些以前从未使用过的用户,我已经为其添加了注释。 这些新方法的可能用途是什么,我们如何将它们适应模式? 我已经阅读了API和[源代码,所以我知道它的作用。我的问题是我们如何在日常代码中使用这些新功能? 我有一个缓冲区类的简单示例,该类按顺序调用AJAX请求。(上一个完成后,下一个开始)。 我在寻找示威和可能的用

  • 问题内容: 如何将java对象转换为InputStream? 问题答案: 您可以使用ObjectOutputStream 您将对象(以下代码中的obj)写入ObjectOutputStream,要转换为输入流的对象必须实现Serializable。

  • 问题内容: 如何在Java中将对象转换为int? 问题答案: 如果您确定该对象是: 或者,从Java 7开始,您可以等效地编写: 当心,它可以抛出一个,如果你的对象是不是和你要的对象是。 这样,您就假定对象是一个整数(包装的int),然后将其拆箱为一个int。 是基元,因此不能将其存储为,唯一的方法是将考虑/装箱为,然后存储为。 如果您的对象是,则可以使用方法将其转换为简单的int: 如果您的对象

  • 问题内容: 我想将org.w3c.dom.Document对象转换为String。我正在使用Java 6,并且愿意使用能够完成任务的任何(完全免费的)技术。我从此线程尝试了解决方案- 在Java中,有比此代码更优雅的方法来将XML文档转换为Java中的String吗?,他们在哪里 但遭到了以下可怕的例外…… 问题答案: 如果您可以进行转换,则可以尝试此操作。

  • 问题内容: response->docs); ?> 输出以下内容: 如何将该对象转换为数组?我想输出以下内容: 这可能吗? 问题答案: 您应该查看get_object_vars,因为您的属性被声明为私有,所以您应该在类内部调用此方法并返回其结果。 注意,对于像字符串这样的原始数据类型,它会很好用,但是我不知道它在嵌套对象中的行为。 在您的情况下,您必须执行类似操作;

  • 问题内容: 我需要加载XML文件并将内容转换为面向对象的Python结构。我要这样: 并将其变成这样: XML数据将具有比这更复杂的结构,并且我无法对元素名称进行硬编码。解析时需要收集属性名称并将其用作对象属性。 如何将XML数据转换为Python对象? 问题答案: 值得一看。 或者以另一种方式构建xml结构: 输出: