相关疑难解决方法(0)

从异步等待函数获取Bluebird Promise

我正在寻找一种方法,使用Node v7.6或更高版本,在调用异步函数时获得Bluebird Promise(或任何非本机承诺).

我可以这样做:

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

getResolvedPromise
  .tap(...) // Bluebird method
  .then(...);
Run Code Online (Sandbox Code Playgroud)

请参阅:我可以使用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(...);
Run Code Online (Sandbox Code Playgroud)

我知道我可以随时使用:

Bluebird.resolve(getResolvedAsyncAwaitPromise())
  .tap(...);
Run Code Online (Sandbox Code Playgroud)

但我很好奇是否有办法改变返回的默认Promise AsyncFunction.似乎包含了构造函数:

请注意,AsyncFunction不是全局对象.它可以通过评估以下代码获得.

Object.getPrototypeOf(async function(){}).constructor
Run Code Online (Sandbox Code Playgroud)

MDN参考 AsyncFunction

如果没有办法改变AsyncFunction's Promise构造函数,我想知道这种锁定的原因.

谢谢 !

node.js promise async-await bluebird es6-promise

11
推荐指数
1
解决办法
3502
查看次数

标签 统计

async-await ×1

bluebird ×1

es6-promise ×1

node.js ×1

promise ×1