1. 程式人生 > 其它 >Es6 Promise 及 小程式如何進入Echarts 及 截圖軟體Snipaste.exe

Es6 Promise 及 小程式如何進入Echarts 及 截圖軟體Snipaste.exe

十年河東,十年河西,莫欺少年窮

學無止境,精益求精

Promise 阮一峰文件:https://es6.ruanyifeng.com/#docs/promise

Snipaste 的使用可參考:https://www.cnblogs.com/cy0628/p/15023420.html

截圖軟體下載地址:https://www.snipaste.com/

在微信小程式中引入Echats,請參考官方文件:https://echarts.apache.org/handbook/zh/how-to/cross-platform/wechat-app/#%E5%9C%A8%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E4%B8%AD%E4%BD%BF%E7%94%A8-echarts

Promise 的用法,關鍵點描述

1、Promise.Race([]),Race字面意思為賽跑,他接受一個Promise物件陣列,陣列中的Promise物件誰最先執行完,則返回最先執行的Promise物件的結果,不會等待其他物件

  onLoad: function (options) {
      let p1=new Promise((resolve,reject)=>{
         setTimeout(() => {
          resolve("OK");
         }, 1000);
      }); 
      let p2=new Promise((resolve,reject)=>{
        reject(
"OK"); }); let p3=new Promise((resolve,reject)=>{ resolve("OK"); }); const result=Promise.race([p1,p2,p3]); console.log(result); },

由於p1為一個非同步方法,耗時一秒,因此,race方法返回的為p2的執行結果,也就是異常的結果。

2、Promise.all([]),all字面意思為賽跑,他接受一個Promise物件陣列,陣列中的Promise物件只要有一個失敗,則返回失敗,如果有多個失敗,則返回第一個失敗的結果,所有執行成功,則返回所有成功結果。

  onLoad: function (options) {
      let p1=new Promise((resolve,reject)=>{
         setTimeout(() => {
          resolve("OK");
         }, 1000);
      }); 
      let p2=new Promise((resolve,reject)=>{
        resolve("OK");
      });  
      let p3=new Promise((resolve,reject)=>{
        resolve("OK");
      });

      const result=Promise.all([p1,p2,p3]);
      console.log(result);
  },

全成功執行,返回所有結果,陣列形式:

一旦有一個或多個失敗,則返回第一個失敗的結果

3、Promise 的then 方法,then 方法接收的為一個Resolve 返回的Promise 物件,如果不是一個Promise 物件,則得到的結果為 未定義

  onLoad: function (options) {
      let p1=new Promise((resolve,reject)=>{
         setTimeout(() => {
          resolve("OK");
         }, 1000);
      }); 
     var p2 = p1.then(value=>{
        console.log(value);
      });

      var p3=p2.then(value=>{
        console.log(value);
      })
  },

執行結果,注意p3的結果為未定義

4、執行順序問題

付婷,你還那麼胖嗎?如果胖,就減肥肥吧。