繁体   English   中英

如何使用Flow与async / await,promises和thenables?

[英]How to use Flow with async/await, promises and thenables?

流量可以做聪明的东西,像这样

type MyMap = WeakMap<number, string>;
const obj: MyMap = new WeakMap();
obj.set(123, 'bar'); // ok
obj.set('not', 'bar'); // flow error!

但是promises,thatables和async / await呢?

我希望有可能做这样的事情:

type AsyncMultiplier = (number) => Thenable<number>;

const myTransform: AsyncMultiplier = async input => input * 2;

(async () => {
  (await myTransform(2)) * 5; // should be ok

  // forgetting to await the result:
  myTransform(2) * 5; // should give a type error
})();

有没有办法让Flow了解await ,thenables等的语义?

Flow了解async / awaitPromise s。 有没有内置类型Thenable虽然你可以定义自己的。

无论如何,在你的例子中,只需用Promise替换Thenable ,你就会得到预期的错误。 请注意,如果您尝试对示例进行类型检查,则会收到以下错误:

1: type AsyncMultiplier = (number) => Thenable<number>;
                                      ^ identifier `Thenable`. Could not resolve name

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM