首页
学习
活动
专区
圈层
工具
发布

promise & axios & async_await 关于 Promise

: 1.类方法(静态方法): (1)resolved:成功状态返回一个 Promise 对象; (2)reject:失败状态返回一个Promise 对象; (3)race:多个 Promise 任务同时执行...,返回最先执行结束的 Promise 任务的结果,不管这个 Promise 结果是成功还是失败; (4)all:如果全部成功执行,则以数组的方式返回所有 Promise 任务的执行结果,如果有错误就返回...then式链式写法的本质其实是一直往下传递返回一个新的Promise,也就是说then在下一步接收的是上一步返回的Promise,理解这个对于后面的细节非常重要!!...axios本身就是一个promise。...网上很多都是把axios外面又套一层promise那是不科学或者没有理解axios的本质的做法,要知道:axios是promise封装的,本质就是一个promise,所以没必要去套一层promise

1.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Ajax,Promise,Fetch,Axios的区别

    Ajax,Promise,Fetch,Axios的区别 说起他们的区别我们首先要知道,js中什么是同步执行和异步执行?...Promise 为了解决一部带来的问题,js推出新对象promise,专门用来存储异步代码对象,他可以确保异步代码的执行和返回结果 Promise的回调函数可以指定两个参数 resolve :在代码正常执行时...,来设置返回值的 reject(可选) :在代码执行出错时,用来设置错误信息,反正我不用,用catch更优雅 当Promise中的代码正常执行时,会通过then方法回调来返回结果,直接抛出异常非正常执行则不会执行...Axios 非官方的发送异步请求的库,基于promise,需要自己引入,可以更好地封装,使用范围广,更方便 document.querySelector("button").addEventListener...√专门为异步提供支持Fetch√官方库,基于Promise,可以直接用来发送请求Axios×第三方,基于Promise,需要引入,能更好的封装

    2.7K30

    Promise 与 Axios 的一些学习心得记录

    学习心得 Promise then:里面有两个回调 promise原型上提供了 then catch finally 三个方法,使用这几个方法都会返回一个全新的 Promise 实例,这个 Promise...如果后面再来一个 .then,那么它执行哪个回调以及它的 Value 值,是取决于上一个.then的回调是否执行成功和返回的 Value 值的(特殊情况:如果其方法中返回的是一个新的Promise实例,...Fulfilled,也接受并返回了Value值 return x*10 },function onRejected(y) { }).then(function onFulFilled(x) {...的Value值[ VALUE1,VALUE2 ...] }) Primise.race:看Promise实例中谁先得到最后的状态,最后就以它的状态和Value为主 Axios 它比Jquer中的AJAX...(reason) }] // => 发送各种请求以及使用axios.all处理并行 axios.get(URL,{ params: { } }).then(data => { })

    23310

    JavaScript手写Promise、Promise.then()、Promise.all()、Promise.race()

    then方法返回一个新的Promise实例,为了在Promise状态发生变化时再执行then里的函数,我们使用一个callbacks数组先把传给then的函数暂存起来,等状态改变时再调用 那么,怎么保证后一个...,在这个resolve里会依次调用callbacks里的回调,这样就执行了then里的方法 启后:上一步中,当then里的方法执行完成后,返回一个结果,如果这个结果是个简单的值,就直接调用新Promise...如果返回的结果是个Promise,则需要等它完成之后再出发新Promise的resolve,所以可在其结果的then里调用新Promise的resolve then(onFulfilled, onReject...break; } }); }; 注意: 连续多个then里的回调方法是同步注册的,但注册到了不同的callbacks数组中,因为每次then都返回新的...接口的对象作为参数 这个方法返回一个新的Promise对象 遍历传入的参数,用Promise.resolve()将参数“包一层”,使其变成一个Promise对象 参数所有回调成功才是成功,返回值数组与参数顺序一致

    1.3K10

    基于promise用于浏览器和node.js的http客户端的axios

    axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征: 从浏览器中创建 XMLHttpRequest 从 node.js 发出 http 请求 支持...Promise API 拦截请求和响应 转换请求和响应数据 取消请求 自动转换JSON数据 客户端支持防止 CSRF/XSRF axios中文文档:https://blog.csdn.net/qq..._36538012/article/details/81942990 axios-w3cschool-菜鸟教程:http://www.27900.com/axios Vue 官方建议用 axios...--save 2.在main.js下引用axios import axios from 'axios' 一切环境依赖搭建好之后 下面来写个例子:axios请求本地json 1:在static文件夹底下新建...图片.png { "name":"wnagxiaoting", "age":24 } 3:写一个axios getData() { axios.get('.

    1.5K20

    Promise

    Promise构造函数执行时立即调用executor函数,resolve和reject两个函数作为参数传递给executor(executor函数在Promise返回所建promise实例对象前被调用)...---- 2.描述 promise对象是一个代理对象(代理一个值),被代理的值在Promise对象创建时可能是未知的。它允许你对异步操作的成功和失败分别绑定对应的处理方法。...这让异步方法可以像同步方法那样返回值,但并不是立即返回最终执行结果,而是一个能代表未来出现的结果的promise对象。...一个promise有以下几种状态: pending :初始状态 fulfilled:操作成功完成 rejected: 操作失败 ---- 3.创建Promise 想要某个函数拥有promise函数...,只需让其返回一个promise即可 function myAsyncFun(url){ return new Promise((resolve, reject)=>{ const xhr

    86720

    使用async和await封装axios

    在最近的vue开发中ajax库选择了axios,需要根据回调函数的参数执行一个很长的代码块,执行函数加上axios参数代码量非常大不便于后期的优化和代码维护,于是我上网寻求axios异步的放法,被告知axios...是promise返回值没有同步,如果代码量大可以尝试自行封装,于是研究了async和await ES6Promise: new Promise(function (resolve, reject) {...{ console.log(res);//"a" }) Copy JavaScript test函数加上async会被转化为promise其中的return返回值就是then函数的参数 await...只能使用在promise中(包括async的返回函数)其用途和他的中文含义差不多:等待,意思是必须等到加await的函数结束promise才会继续执行 import axios from 'axios'...将 createType转化为promise 设置变量data准备作为返回值 为axios函数添加await等待axios完全执行完createType才会返回data变量 请求成功后将axios的请求值赋值给变量

    2K10

    高级 Promise 模式 - Promise缓存

    我们将通过介绍基于 Singleton Promise 模式的 Promise Memoization 模式来做到这一点。...; }; 非常相似,但是我们没有 await 发出网络请求,而是将其 Promise 放入缓存中,然后将其返回给调用方。 注意,我们不需要声明我们的方法 async ,因为它不再调用 await 。...我们的方法签名虽然没有改变我们仍然返回一个 promise ,但是我们是同步进行的。...给定我们已经看到的输入后,我们只返回存储的结果(恰好是一个Promise)。 因此,记住我们的异步方法可以使我们在没有竞争条件的情况下进行缓存。...如果我们的内存实现已缓存了被拒绝的 Promise ,则所有将来的调用都将以同样的失败 Promise 被拒绝!

    1.8K20
    领券