教你實現快應用storage介面同步呼叫

華為開發者論壇發表於2021-06-24

快應用非同步介面支援返回 Promise(1010+)的方式 ,開發者配套 async和await的方式編寫程式碼,達到同步效果。對於介面呼叫成功是返回一個物件res = {data} ,開發者可以透過res.data獲取介面實際返回的結果,透過res.code獲取失敗的返回code。

storage.get()介面為例,程式碼如下:

<script>
  import storage from '@system.storage';
  const injectRef = Object.getPrototypeOf(global) || global;
  // 注入regeneratorRuntime
  injectRef.regeneratorRuntime = require('@babel/runtime/regenerator');
 
  module.exports = {
    onDestroy: function () {
      console.info("onDestroy");
    },
    getValue:  async function () {
      try {
        let re = await storage.get({
        key: 'name'
      });
      console.info("getValue re="+JSON.stringify(re));
      let value=re.data;
      } catch (error) {
          console.info("getValue error="+error);
      }
    }
  }
</script>

輸出如下:

getValue re={"data":"hanmeimei"}

注意事項:

對於 await的方式呼叫需要引入@babel/runtime/regenerator。

 

欲瞭解更多詳情,請參見:

快應用回撥介紹:

https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/quickapp-api-rules#h1-1575622944242


原文連結: https://developer.huawei.com/consumer/cn/forum/topic/0204418582525080548?fid=18

原作者:Mayism

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69970551/viewspace-2778136/,如需轉載,請註明出處,否則將追究法律責任。

相關文章