使用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方法拿到: