资讯专栏INFORMATION COLUMN

promise

shiweifu / 725人阅读

摘要:什么是异步编程的一种方案,是一个容器保存着未来将可能发生的事情实例对象的特点中的状态只有异步操作结果才能改变中有个状态状态的改变或者状态一旦改变,就不会再变一秒钟以后会输出值得注意的是新建的过程中构造函数会被立即执行使用实现请求

什么是Promise

异步编程的一种方案, 是一个容器保存着未来将可能发生的事情

promise实例对象的特点

1、promise中的状态只有异步操作结果才能改变
promise中有3个状态 1、pending 2、resolve 3、rejected
状态的改变 1->2 或者1->3
2、状态一旦改变,就不会再变

function  testPromise(ms) {
         return new Promise(function (resolve,reject) {
             setTimeout(resolve,ms,"done")
         })
     }
     testPromise(1000).then(function (value) {
         console.log(value)
     })

一秒钟以后会输出done 值得注意的是新建promise的过程中 构造函数会被立即执行
使用promise实现ajax请求

  var getJSON=function (url) {
         return promise=new Promise(function (resolve,reject) {
             var xhr=new XMLHttpRequest();
             xhr.open("GET",url);
             xhr.responseType="json";
             xhr.setRequestHeader("Accept","application/json")
             xhr.onreadystatechange=handler;
             function handler() {
                 if(this.readyState!=4){
                     return ;
                 }else{
                     if(this.status==200){
                         resolve(this.response);
                     }else{
                         reject(this.status);
                     }
                 }
             }
             xhr.send();
         })
     }
     getJSON("a.json").then(function (res) {
         console.log(res)
     }).then(function (msg) {
         console.log(msg)
     })

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/85211.html

相关文章

  • Promise的几个扩展API总结

    摘要:的几个扩展总结描述和相反,当所有的被拒绝之后,方法执行完成的决议,如果存在一个执行完成的决议,方法则执行拒绝里边的所有实例反过来就好了执行到此执行到此描述忽略被拒绝的,只需要有一个完成的,方法就执行完成操作,如果全部的都被拒绝,方法执行拒绝 Promise的几个扩展API总结 1. Promise.none 描述: 和 Promise.all 相反,当所有的promise被拒绝之后,n...

    李义 评论0 收藏0
  • Promise 中的三兄弟 .all(), .race(), .allSettled()

    摘要:对于的来说基元函数包括组合函数的类型签名返回情况完成如果传入的可迭代对象为空,会同步地返回一个已完成状态的。相反,如果是在指定的时间之后完成,刚返回结果就是一个拒绝状态的从而触发方法指定的回调函数。在行中,对每个小任务得到的结果进行汇总。 为了保证的可读性,本文采用意译而非直译。 想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你! 从ES6 开始,我们大都使用的是 P...

    vspiders 评论0 收藏0
  • 异步发展流程 —— 手写一个符合 Promise/A+ 规范的 Promise

    摘要:构造函数的实现我们在使用的时候其实是使用关键字创建了一个的实例,其实是一个类,即构造函数,下面来实现构造函数。 showImg(https://segmentfault.com/img/remote/1460000018998456); 阅读原文 概述 Promise 是 js 异步编程的一种解决方案,避免了 回调地狱 给编程带来的麻烦,在 ES6 中成为了标准,这篇文章重点不是叙...

    UnixAgain 评论0 收藏0
  • 实现Promise

    摘要:使用是极好的,它是如此有用以至于我觉得应该好好研究一下,甚至是实现一个简易的版本。构造函数检查参数例如是不是函数啊初始化,创建对象执行因此构造函数里面传入的是立即被执行的。 使用Promise是极好的,它是如此有用以至于我觉得应该好好研究一下Promise,甚至是实现一个简易的版本。实现之前,我们先来看看Promise的用途: 使用Promise callback hell Promi...

    xcc3641 评论0 收藏0
  • Promise 对象的理解

    摘要:使用对象的好处在于可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。对象异步操作抛出错误,状态就会变为,就会调用方法指定的回调函数处理这个错误。 Promise 含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了 Promise 对象。 所谓 P...

    church 评论0 收藏0
  • Promise的源码实现(完美符合Promise/A+规范)

    摘要:以上代码,可以完美通过所有用例。在的函数中,为何需要这个同样是因为规范中明确表示因此我们需要这样的来确保只会执行一次。其他情况,直接返回以该值为成功状态的对象。 Promise是前端面试中的高频问题,我作为面试官的时候,问Promise的概率超过90%,据我所知,大多数公司,都会问一些关于Promise的问题。如果你能根据PromiseA+的规范,写出符合规范的源码,那么我想,对于面试...

    gaomysion 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<