• Promise初尝试


    promise.ts

    export function showAlert() {
      console.log("开始调用showAlert");
      return new Promise((reslove, reject) => {
        try {
          console.log("开始执行showAlert");
          setTimeout(() => {
            console.log("执行showAlert完成");
            reslove();
          }, 3000);
        } catch (e) {
          reject(e);
        }
      });
    }
    export function showAlert2() {
      console.log("开始调用2");
      return new Promise((reslove, reject) => {
        try {
          console.log("开始执行2");
          setTimeout(() => {
            console.log("执行2完成");
            reslove();
          }, 5000);
        } catch (e) {
          reject(e);
        }
      });
    }
    

    页面

    • import { showAlert, showAlert2 } from "../promise.ts";

    • 打印数据

    • 开始调用showAlert

    • 开始执行showAlert

    • 开始调用2

    • 开始执行2

    • 执行showAlert完成

    • 已经结束

    • 执行2完成

    • 2结束

    • 两个都调用

        // 总共经过5秒
        onSubmit() {
          showAlert()
            .then(res => {
              console.log("已经结束");
            })
            .catch(err => {
              console.log(err);
            });
          showAlert2()
            .then(res => {
              console.log("2结束");
            })
            .catch(err => {
              console.log(err);
            });
        }
      
    • 异步调用

        // 异步执行5秒完成
        async onSubmit() {
          Promise.all([showAlert(), showAlert2()]).then(() => {
            console.log("两个执行完成");
          });
        }
      
    • async await

        // 5秒完成
        async onSubmit() {
          const result = await Promise.all([showAlert(), showAlert2()]);
          console.log("async await 执行完成");
        }
      
    • await

        // 8秒完成
        async onSubmit() {
              await showAlert();
              await showAlert2();
              console.log("await完成");
            }
  • 相关阅读:
    数字和字母交替打印
    日期和字符串的转化
    redis简介
    管理MySQL的命令
    创建mysql数据表成功
    微信账号 echo_server 的实现
    html5 画个圈
    php练习1
    人生十大点
    养生“六伤”、“十二莫”、“十二少”
  • 原文地址:https://www.cnblogs.com/DCL1314/p/11737890.html
Copyright © 2020-2023  润新知