zoukankan      html  css  js  c++  java
  • 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完成");
            }
  • 相关阅读:
    cocos2d-android学习四 ---- 精灵的创建
    Think In java 笔记一
    管理文件夹
    Android Studio Mac 快捷键整理分享
    协同过滤
    POJ 3281(Dining-网络流拆点)[Template:网络流dinic]
    JS经常使用表单验证总结
    js中的Call与apply方法
    (转)WPF控件开源资源
    五年北京,这个改变我命运的城市,终于要离开了(转)
  • 原文地址:https://www.cnblogs.com/DCL1314/p/11737890.html
Copyright © 2011-2022 走看看