使用async,await關鍵字進行API Access Token的獲取

  • 2019 年 10 月 4 日
  • 筆記

版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://jerry.blog.csdn.net/article/details/100768927

直接上代碼:

const request = require('request-promise-native');    var config = require('../config.js');    async function getAccessToken(){      var raw = new Buffer(config.username + ":" + config.password);      const accessToken = await request({          method: 'GET',          headers: {              'Authorization': 'Basic ' + raw.toString('base64')          },          url: config.ACCESS_TOKEN,          json: false      });        return accessToken;  }    module.exports = getAccessToken;

消費代碼:

accessTokenService().then(function(oResult){      console.log(oResult);  });

單步執行後,調試器執行到第7行時,執行跳過,第16行也沒有機會得到單步執行,而是直接跳出了這個getAccessToken的函數。稍等幾秒後,斷點直接從第16行return關鍵字處觸發。

此時這個accessToken的變量包含的是純粹的Access Token值,而不是被包裹的promise對象。

儘管如此,整個async函數最後返回的是一個promise對象,其包含的access token用promise對象提供的then方法拿到: