美文网首页
8-异步操作

8-异步操作

作者: 少年啊兵 | 来源:发表于2018-10-24 15:31 被阅读0次

概述

单线程模型

JavaScript 同时只能执行一个任务,其他任务都必须在后面排队等待。

引擎有多个线程,单个脚本只能在一个线程上运行(称为主线程)。

同步任务和异步任务

同步任务是那些没有被引擎挂起、在主线程上排队执行的任务。只有前一个任务执行完毕,才能执行后一个任务。

异步任务是那些被引擎放在一边,不进入主线程、而进入任务队列的任务。

任务队列和事件循环

首先,主线程会去执行所有的同步任务。等到同步任务全部执行完,就会去看任务队列里面的异步任务。如果满足条件,那么异步任务就重新进入主线程开始执行,这时它就变成同步任务了。等到执行完,下一个异步任务再进入主线程开始执行。一旦任务队列清空,程序就结束执行。

异步操作的模式

    1、回调函数

    2、事件监听

    3、发布\订阅

异步操作的流程控制

如何确定异步操作执行的顺序?

串行执行;并行执行;并行与串行的结合

定时器

Promise

function test(resolve, reject) {

        var timeOut = Math.random() * 2;

        console.log('set timeout to: ' + timeOut + ' seconds.');

        setTimeout(function () {

            if (timeOut < 1) {

                console.log('call resolve()...');

                resolve('200 OK');

            }

            else {

                console.log('call reject()...');

                reject('timeout in ' + timeOut + ' seconds.');

            }

        }, timeOut * 1000);

      }

      new Promise(test).then(function (result) {

          console.log('成功:' + result);

      }).catch(function (reason) {

          console.log('失败:' + reason);

      });

相关文章

  • 8-异步操作

    概述 单线程模型 JavaScript 同时只能执行一个任务,其他任务都必须在后面排队等待。 引擎有多个线程,单个...

  • ES6 Primise异步编程

    异步操作流程化的手段 #Promise处理异步操作 Promise,使异步操作变得流程化的手段之一,例如“异步A ...

  • Promise--异步的解决方案

    Promise 对象是 JavaScript 的异步操作解决方案,为异步操作提供统一接口,使得异步操作具备同步操作...

  • .NET多线程(五)异步操作

    5、异步操作 5.1 异步操作基础 异步操作发展历史,APM模式,EAP模式,TPL模式 .NET 1.0 Sys...

  • Future

    juc.Future:Java异步操作结果 Future:Netty异步操作结果 Promise:可设置结果的异步...

  • Android AsyncTask基础

    AsyncTask是Android为了简化异步操作而封装的异步任务操作抽象类。当我们需要在程序中执行耗时的异步操作...

  • IOS多线程总结

    目录 简述 NSThread GCD操作与队列异步操作并行队列同步操作并行队列同步操作串行队列异步操作串行队列队列...

  • 异步编程方法

    前言 同步与异步最直观的理解:等到操作执行完成才返回执行结果的是同步操作;反之,则是异步操作 传统的异步编程方法:...

  • ES6-Promise (编辑ing)

    异步:多个操作可以同时进行 Promeise Promeise对象,用来传递异步操作的数据。 Promeise方法...

  • promise异步操作

    promise异步操作 定义:包含异步操作结果的对象 状态: 声明方式: new Promise((resolve...

网友评论

      本文标题:8-异步操作

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