• JS11 -- 同步异步


    浏览器是多线程的,每打开一个tab就是一个线程

    因为js是单线程的,一次只能执行一次任务,多个任务等待上一任务。像ajax请求这种等待服务器返回数据就会被挂起,但返回数据就会加入主线程

    1. promise (resolve,reject)

    var oPromise = new Promise(function (resolve,reject) {});      // resolve成功,reject失败

    Promise.all(['对象1',对象2"]).then(function () {//对象1、对象2请求成功,执行})      // 对象1/2是异步就会等待数据回来在执行then,new Promise((resolve,reject)=>{ setTimeout(()=>{ resolve(true) },1000) })

    Promise.race(['对象1',对象2"]).then(function () {//对象1、对象2谁最快请求成功,执行})

    Promise成功后,.then()可执行,根据resolve,reject函数状态

    1. 封装一个get请求的方法

    let url = 'http://wthrcdn.etouch.cn/weather_mini?citykey=101070101';
    
    function getJSON(url) {
        return new Promise(function(resolve, reject) {
            var XHR = new XMLHttpRequest();
            XHR.open('GET', url, true);
            XHR.send();
     
            XHR.onreadystatechange = function() {
              console.log(XHR.status)
              console.log(XHR.statusText)
                if (XHR.readyState == 4) {
                    if (XHR.status == 200) {
                        try {
                            console.log(XHR.statusText)
                            var response = JSON.parse(XHR.responseText);
                            resolve(response);
                        } catch (e) {
                            reject(e);
                        }
                    } else {
                        reject(new Error(XHR.statusText));
                    }
                }
            }
        })
    }
     
    getJSON(url).then(res => console.log(res));

    --------------------- 
    原文:https://blog.csdn.net/qq_29849641/article/details/69233788 
    function timeout(ms) {
        return new Promise((resolve, reject) => {
            setTimeout(resolve, ms, 'done');
        });
    }
    
    timeout(4000).then((value) => {
        console.log(value);
    });

     2.回调 (以函数做为参导入另一个函数的等待调用)

     3.定时器

    Javascript异步编程的4种方法

    promise

    async 函数的含义和用法

  • 相关阅读:
    工具
    BZOJ 1202: [HNOI2005]狡猾的商人
    BZOJ 4562: [Haoi2016]食物链
    BZOJ 1922: [Sdoi2010]大陆争霸
    BZOJ 2429: [HAOI2006]聪明的猴子
    BZOJ 1083: [SCOI2005]繁忙的都市
    BZOJ 1012: [JSOI2008]最大数maxnumber
    Luogu P1078 文化之旅
    快速读入
    [HNOI2014]道路堵塞
  • 原文地址:https://www.cnblogs.com/lgyong/p/12095137.html
Copyright © 2020-2023  润新知