使用async,await关键字进行API Access Token的获取

直接上代码:

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

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

相关文章

最后的控制台返回空数组.控制台在ids.map函数完成之前运行va...
我正在尝试将rxJava与我已经知道的内容联系起来,特别是来自J...
config.jsconstconfig={base_url_api:"https://douban....
我正在阅读MDN中的javascript,并且遇到了这个谈论承诺并且不...
config.jsconstconfig={base_url_api:"https://douban....
这是我的代码main.cpp:#include<string>#include<...