async/await with webpack+babel in Browser

1.安装以下插件

  • babel-plugin-transform-runtime
  • babel-preset-stage-3

2.Webpack配置

    module : {
       loaders : [{
           test: /\.jsx?$/,
           exclude: /node_modules/,
           loader: 'babel-loader',
            query: {
                "presets": ["react", "es2015", "stage-0"]
                "plugins": [
                    ["transform-runtime", {
                        "polyfill": false,
                        "regenerator": true
                    }]
                ]
            },
       }]
    }

3.调用实例

let fetchApi = () => {
       return new Promise((resolve, reject) => {
           var xhr = new XMLHttpRequest();
           xhr.onreadystatechange = function() {
               if (xhr.readyState === 4) {
                   if (xhr.status >= 200 && xhr.status < 300) {
                       var response;
                       try {
                           response = JSON.parse(xhr.responseText);
                       } catch (e) {
                           reject(e);
                       }
                       if (response) {
                           resolve(response, xhr.status, xhr);
                       }
                   } else {
                       reject(xhr);
                   }
               }
           };
           xhr.open('GET', 'https://api.douban.com/v2/user/aisk', true);
           xhr.setRequestHeader("Content-Type", "text/plain");
           xhr.send(xhr);
       })
   }

  let testAsync = async () => {
      const t = await fetchApi()
      console.log(t)
   }
   testAsync() 
    原文作者:桃子
    原文地址: https://segmentfault.com/a/1190000010672185
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞