jfriend00..

66

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

Promise是一种管理异步操作的工具.它们跟踪异步操作何时完成以及它们的结果是什么,并让您与其他代码或其他异步操作协调完成和那些结果(包括错误条件).它们本身并不是异步操作.Ajax调用是一种特定的异步操作,可以与传统的回调接口一起使用,也可以包含在promise接口中.

那么它们之间的区别是什么?何时最好使用一个而不是另一个?

Ajax调用是一种特定类型的异步操作.您可以使用Ajax调用或者与传统的回调XMLHttpRequest接口,也可以使Ajax调用(在现代浏览器),使用与承诺fetch()接口.

最近我遇到了一个承诺,它的身体有一个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'));

}

promise跟ajax区别,Promise和AJAX有什么区别?相关推荐

  1. AJAX, callback,promise and generator

    AJAX with jQuery $.ajax({url:??,type:??,data:??,success: function(){??} //callback,error:function(jq ...

  2. ajax、promise、react、缓存笔记记录

    ajax请求 1.请求基本步骤 <body><form action="###">手机号:<input type="text" n ...

  3. Promise基本使用 ,promise 与 Ajax封装

    Promise是JS中进行异步编程的新的解决方案 表达: ①从语法上看:Promise是一个构造函数 (自己身上有all.reject.resolve这几个方法,原型上有then.catch等方法) ...

  4. javascript-前后端交互-异步调用Ajax与Promise比较

    javascript-前后端交互-异步调用Ajax与Promise比较 目录 文章目录 1.异步调用 1.1.使用场景 1.2.Ajax使用 1.2.1.启动后台 1.2.2.编写前端测试页面 1.3 ...

  5. ajax创建iexmlhttp,AJAX 常用函数创建XMLHTTP对象,区别IE,Mozilla浏览器

    AJAX 常用函数创建XMLHTTP对象,区别IE,Mozilla浏览器的函数,网上有很多创建XMLHTTP对象,区别IE,Mozilla浏览器的函数,这个比较不错,大家可以直接拿用了 functio ...

  6. AJAX怎么实现同步请求?Ajax同步和异步请求有什么区别以及使用场景有哪些?

    一.AJAX怎么实现同步请求? ajax请求我们分为同步请求和异步请求,但是默认的都是异步请求,那么,当我们想用ajax同步请求时,我们该如何去实现这个同步请求呢?接下来的这篇文章就来给大家介绍一下关 ...

  7. promise用法_图解 Promise 实现原理(四):Promise 静态方法实现

    作者:Morrain 转发链接:https://mp.weixin.qq.com/s/Lp_5BXdpm7G29Z7zT_S-bQ 前言 Promise 是异步编程的一种解决方案,它由社区最早提出和实 ...

  8. 原生ajax和Jquery的ajax

    目录 原生ajax 传统请求(同步方式)的问题 Ajax优势和作用 Ajax请求与传统请求的区别: ajax原理(方法,属性 ) XMLHttpRequest open send 属性 readySt ...

  9. Ajax是什么?Ajax高级用法之Axios技术

    Ajax AJAX 异步请求局部刷新 Ajax 参数详解 js.json.jsonp区别 json和jsonp的区别 同源策略 json和js对象的区别 Ajax高级用法(axios) 为什么要用Ax ...

  10. 十二、Promise的学习笔记(Promise的基本使用、链式编程、all())

    一.认识Promise ES6中一个非常重要和好用的特性就是Promise 但是初次接触Promise会一脸懵逼,这TM是什么东西? 看看官方或者一些文章对它的介绍和用法,也是一头雾水. Promis ...

最新文章

  1. 一些很实用且必用的小脚本代码:
  2. 为什么运行了java文件老是404_java – 为什么Spring MVC用404响应并报告“在...
  3. 打开php.ini中的Safe_mode,会影响哪些函数?
  4. CECC2018赛季收官站我国×××手夺得年度总冠军
  5. 【Alpha版本】十天冲刺集结令
  6. iPhone 13用什么蓝牙耳机?五款性能强悍蓝牙耳机推荐
  7. python源码剖析类机制_python源码剖析
  8. 删除oracle安装目录,Oracle 卸载
  9. JavaScript实现百度坐标系、火星坐标系、WGS84坐标系的互相转换
  10. Python学习推荐
  11. Scratch-(六)-妙笔生花
  12. 华为产品升级及打补丁具体步骤
  13. python产品作者如何去掉_python去除\ufeff、\xa0、\u3000
  14. chipping rate码片速率
  15. 什么是HTTPS安全证书?
  16. 病毒、木马、蠕虫与恶意代码关键点
  17. win10 更新后蓝牙无法连接以前设备
  18. 关于continue用法总结
  19. JAVA——多线程【线程终止、中断、插队】
  20. 联想miix510 安装黑苹果Mac OS,也合适其他笔记本安装黑苹果

热门文章

  1. VS2022 安装 .NET Framework 4.0的方法
  2. 怎么把图片转换成pdf格式?图片转PDF方法
  3. 计量单位报错:消息号BM305 “未使用语言 ZH 创建单位 XXX”
  4. 蓝桥杯计算机软件大赛什么时间,“蓝桥杯”全国软件设计大赛
  5. linux之lzma tar压缩解压命令
  6. IO字节流读取文本中文乱码
  7. IBM服务器管理口IMM使用指南
  8. windows11关闭安全中心的病毒和威胁防护时,打不开,弹出打开应用需要打开windowsdefender链接问题
  9. windows 安全删除硬件并弹出媒体 选项灰色、无法弹出、无弹出选项
  10. 物联网的体系结构和关键技术