zoukankan      html  css  js  c++  java
  • promise学习

    promise是异步操作的一种解决方案,简单来说,就是一个容器里面保存着某个未来才会结束的事件(异步操作)。

    promise特点:(1)、promise三种状态:pending(进行中),fulfilled(已成功),rejected(已失败)。(2)、resolved(已定型)

    promise缺点:(1)、一旦新建就会立刻执行,无法中途取消。(2)、不设置回调函数,promise内部抛出的错误,不会反映到外部。(3)、处于pending状态时候,就是不知道目前进展到哪个阶段(刚刚开始还是即将完成)。

    promise基本用法

    promise对象是个构造函数,用来生成promise实例。

    const promise = new Promise(function(resolve,reject){

      if("异步执行成功"){

        resolve(value)

      }else{

        reject(error)

      }

    })

    promise.then(function(value){


    },function(error){

    })

    promise对象的简单例子:

    function timeout(ms){

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

        setTimeout(resolve,ms,'done');

      })

    }

    timeout(100).then((value)=>{

      console.log(value)

    })

    上面代码中,timeout返回一个promise实例,表示一段时间后才会发生的结果。过了指定时间,promise实例的状态变为resolved.就会触发then方法绑定的回调函数。

    promise新建后就会立即执行:

    let promise = new Promise(function(resolve,reject){
      console.log('promise')
      resolve()
    })
    promise.then(function(){
      console.log('resolved')
    })
    console.log('hu')

    promise新建后就会立即执行,所以首先输出的是promise,然后,then方法指定的回调函数,将在当前脚本所有同步任务执行完成以后才会执行,所以resolved最后输出。

  • 相关阅读:
    大话重构读书笔记——保险索下的系统重构
    大话重构读书笔记——小步快跑的开发模式
    大话重构读书笔记——基础篇一
    [C#高级编程]基础知识摘要一
    测试基础
    WatiN和HttpWatch交互简介
    WatiN框架学习二——对弹窗的处理
    WatiN框架学习
    [C#高级编程].NET体系结构
    http协议的API
  • 原文地址:https://www.cnblogs.com/zwjx/p/9685077.html
Copyright © 2011-2022 走看看