美文网首页
javaScript异步编程

javaScript异步编程

作者: 酸菜牛肉 | 来源:发表于2020-05-19 17:50 被阅读0次

作者:酸菜牛肉 文章内容输出来源:拉勾教育大前端高薪训练营课程

内容概要 ###:

  1. 同步模式与异步模式
  2. 时间循环与消息队列
  3. 异步编程的几种方式
  4. Promise 异步编程、宏任务/微任务队列
  5. Generator 异步方案、Async/Await语法糖

一 、同步模式与异步模式

异步模式

回调函数: 由调用者定义, 由执行者执行

function foo (callback){
  setTimeout(function(){
    callback()
  }, 3000)
}
foo(function(){
  console.log('这个一个回调函数');
  console.log('由调用者定义, 由执行者执行');
  console.log('其实就是调用者告诉执行者异步任务结束之后应该做什么')
})
Promise
Promise概念
const promise = new Promise((resolve, reject) => {
    resolve(100);
    // reject(new Error("promise rejected"));
})

promise.then((data)=> {
    console.log(data);
}, (error) => {
    console.log(error)
})
console.log("end")
  • Promise 对象的then方法会返回一个全新的Promise对象
  • 后面的then方法就是在为上一个then返回的promise注册回调
  • 前边then方法中回调函数的返回值会作为后面then方法回调的参数
  • 如果回调中返会的是Promise,那后边then方法的回调会等待他的结束
    Promise的串行与并行
const ajax = (url) => {
    return new Promise((resolve, reject)=>{
        if(url.startsWith('api')){
        
            resolve(1000);
        }else{
            reject(new Error('url api is error'))
        }
        
    })
}
//并行执行
const promise = Promise.all([
    ajax('api'),
    ajax('api')
])

//串行执行
//ajax('api').then(data=>{
//  const urls = Object.values(data)
//  const tasks = urls.map(url => ajax(url))
//  return new Promise.all(tasks);
//}).then(values=>{
//  console.log(values)
//})

promise.then(data=>{
    console.log(data);
}).catch(error=>{
    console.log(error)
})

Promise.all()等待所有promise的任务同时执行完成会返回一个新的Promise的对象
Promise.rece()等待第一个promise的任务执行完成返回一个新的Promise的对象

作者:酸菜牛肉 文章内容输出来源:拉勾教育大前端高薪训练营课程

相关文章

  • JavaScript异步编程好文摘要

    JavaScript之异步编程简述JavaScript异步编程

  • part1整理

    函数式编程:JavaScript函数式编程指南 异步编程:异步编程 Promise源码 JavaScript基础知...

  • 一篇看完JS异步编程的进阶史

    一、Javascript实现异步编程的过程以及原理 1、为什么要用Javascript异步编程 众所周知,Java...

  • ES6 之 Promise

    Promise是JavaScript异步编程中的重要概念,异步抽象处理对象,是目前比较流行Javascript异步...

  • JavaScript(ES6) - Async

    异步编程对JavaScript语言太重要。Javascript语言的执行环境是“单线程”的,如果没有异步编程,根本...

  • 异步编程控制方法

    javascript 具有的一个特性就是异步编程。异步编程具有的优势本文不做细说,本文主要是总结如何异步编程中出现...

  • Javascript------异步编程的4种方法

    Javascript异步编程的4种方法

  • 深入了解下Promise

    Promise 意义 Promise 的诞生与 Javascript 中异步编程息息相关,js 中异步编程主要指 ...

  • JavaScript学习笔记(5) 异步-- Promise

    写在前面 异步编程对Javascript语言非常重要,在Javascript的发展道路上,异步编程的方法也是一直在...

  • AJAX入门

    AJAX(Async Javascript and Xml):在AJAX中的异步不是异步编程中的异步,而是泛指“局...

网友评论

      本文标题:javaScript异步编程

      本文链接:https://www.haomeiwen.com/subject/jdpvohtx.html