Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将流与async/await、Promissions和thenables一起使用?_Javascript_Flowtype - Fatal编程技术网

Javascript 如何将流与async/await、Promissions和thenables一起使用?

Javascript 如何将流与async/await、Promissions和thenables一起使用?,javascript,flowtype,Javascript,Flowtype,Flow可以做一些聪明的事情,比如: 类型MyMap=WeakMap; const obj:MyMap=new WeakMap(); 对象集(123,'条形');//好啊 对象集('not','bar');//流量错误! 但是承诺、表单和异步/等待呢 我希望有可能做到这一点: type AsyncMultiplier = (number) => Thenable<number>; const myTransform: AsyncMultiplier = async inpu

Flow可以做一些聪明的事情,比如:

类型MyMap=WeakMap;
const obj:MyMap=new WeakMap();
对象集(123,'条形');//好啊
对象集('not','bar');//流量错误!
但是承诺、表单和异步/等待呢

我希望有可能做到这一点:

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
})();
类型AsyncMultiplier=(数字)=>表格;
常量myTransform:async乘数=异步输入=>input*2;
(异步()=>{
(等待myTransform(2))*5;//应该可以
//忘记等待结果:
myTransform(2)*5;//应给出一个类型错误
})();

有没有办法让Flow理解
await
、表等的语义?

Flow理解
async
/
await
Promise
s。
表格
没有内置类型,尽管您可以定义自己的类型

无论如何,在您的示例中,只需将
表格
替换为
承诺
,您就会得到预期的错误。请注意,如果尝试键入检查示例,则会出现以下错误:

1: type AsyncMultiplier = (number) => Thenable<number>;
                                      ^ identifier `Thenable`. Could not resolve name
1:type async乘数=(number)=>Thenable;
^标识符“Thenable”。无法解析名称
1: type AsyncMultiplier = (number) => Thenable<number>;
                                      ^ identifier `Thenable`. Could not resolve name