promise跟ajax区别,Promise和AJAX有什么区别?

你感到困惑的承诺和Ajax调用。它们有点像苹果和刀子。你可以用刀切苹果,刀是可以应用于苹果的工具,但这两者是非常不同的东西。

承诺是管理异步操作的工具。他们会跟踪异步操作何时完成以及结果如何,并让您与其他代码或其他异步操作协调完成以及这些结果(包括错误条件)。它们本身并不是实际的异步操作。 Ajax调用是一种特定的异步操作,可以与传统的回调接口一起使用或包装在承诺接口中。

那么他们之间有什么区别?什么时候最好使用 而不是另一个?

Ajax调用是一种特定类型的异步操作。您可以使用XMLHttpRequest interface与传统回调进行Ajax调用,也可以使用fetch() interface的承诺进行Ajax调用(在现代浏览器中)。

最近我遇到了一个承诺,它的主体中有一个AJAX。为什么 在异步操作中放置异步操作?这就像在一个面包三明治里面放一块面包面包 。

你没有告诉你在谈论具体的代码,但有时你想开始异步操作1,然后当异步操作完成后,要他们开始异步操作2(通常使用效果的第一个)。在这种情况下,你通常会在另一个中嵌套一个。

你的代码示例在这里:

function threadsGet() {

return new Promise((resolve, reject) => {

$.getJSON('api/threads')

.done(resolve)

.fail(reject);

})

}

被认为是一个承诺的反模式。没有理由在此创建新的承诺,因为$.getJSON()已返回您可以返回的承诺。你可以做这个:

function threadsGet() {

return $.getJSON('api/threads');

}

或者,如果你想“投”有点不标准的jQuery承诺标准的承诺,你可以这样做:

function threadsGet() {

return Promise.resolve($.getJSON('api/threads'));

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值