从异步等待功能获取Bluebird Promise

I am looking for a way, with Node v7.6 or above, to get a Bluebird Promise (or any non-native promise) when an async function is called.

用同样的方式,我可以做:

global.Promise = require('Bluebird'); // Or Q/When
var getResolvedPromise = () => Promise.resolve('value');

getResolvedPromise
  .tap(...) // Bluebird method
  .then(...);

See: May I use global.Promise=require("bluebird")

我希望能够执行以下操作:

global.Promise = require('Bluebird'); // Or Q/When
var getResolvedAsyncAwaitPromise = async () => 'value';

getResolvedAsyncAwaitPromise()
  .tap(...) // Error ! Native Promises does not have `.tap(...)`
  .then(...);

我知道我可以随时使用类似的东西:

Bluebird.resolve(getResolvedAsyncAwaitPromise())
  .tap(...);

But I was curious if there would be a way to change the default Promise returned by AsyncFunction. The constructor seems enclosed:

Note that AsyncFunction is not a global object. It could be obtained by evaluating the following code.

Object.getPrototypeOf(async function(){}).constructor

MDN reference on AsyncFunction

If there is no way to change the AsyncFunction's Promise constructor, I would like to know the reasons of this locking.

谢谢 !