处理异步请求的最佳方法是什么

时间:2013-10-06 16:51:16

标签: jquery post asynchronous typescript async-await

在C#中你有等待声明。处理异步请求。 我正在使用typscript因为我发现使用javascript很难处理

现在使用打字稿时,我不知道在处理帖子时处理请求的方法是什么。

处理这个问题的最佳方式是什么。

2 个答案:

答案 0 :(得分:4)

TypeScript不为JavaScript提供新功能,它“仅仅”引入了输入。因此,您需要查看不同的JavaScript库如何处理异步请求,选择您的喜好并引用相应的定义文件。

对于第一部分,我将假设您正在使用jQuery(因为您的问题同样被标记)。在jQuery中,异步请求由promises处理。我建议阅读文档并在线查找有关如何使用它们的其他教程。我将在下面提供一个TypeScript示例。

在选择要使用的JavaScript库之后,您需要一个TypeScript定义文件(*.d.ts)。基本上这相当于一个C头文件。定义文件将告诉TypeScript编译器存在范围,变量和方法,而无需提供TypeScript实现。在jQuery defintion文件的情况下,它将告诉编译器有一个名为$的作用域以及在该作用域上定义的所有变量和方法。可以找到社交维护的定义文件存储库here。它还包括有关如何引用项目中文件的文档。

最后,您需要在TypeScript代码中使用promises,下面是示例代码。

$.post("http://www.hateverurl.dom", options).done(() => {
    // the POST request has finished succesfully when this method is invoked.
})

答案 1 :(得分:2)

计划为TypeScript计划async关键字(1.7)和ECMAScript 6(2.0)的向后编译。与此同时,Q和RSVP都遵循Promises / A +标准 - 两者都有绝对类型的打字。

深度

introducing the async keyword to TypeScript提案。

此功能计划为TypeScript 1.7的一部分(无保证)。

真正的好消息是实际上是ES5的后向编译(这是针对TypeScript 2.0的计划)。这不是TypeScript所做的唯一向后编译,因此不要过多注意那些说TypeScript不会向JavaScript添加任何东西的人 - 除了类型之外 - 还有许多ECMAScript 6功能的polyfill已经可用或计划,例如(但不限于):

  • import * from 'module';
  • let
  • 发电机
  • async / promises
  • 解构

现在,在TypeScript 1.7中,偶尔会有一些ECMAScript 7功能登陆路线图。