2

在 C# 中,您有 await 语句。处理异步请求。我正在使用 typscript,因为我发现使用 javascript 真的很难

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

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

4

2 回答 2

4

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

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

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

最后,您需要在 TypeScript 代码中使用 Promise,示例代码如下。

$.post("http://www.hateverurl.dom", options).done(() => {
    // the POST request has finished succesfully when this method is invoked.
})
于 2013-10-07T05:38:08.270 回答
2

关键字 (1.7) 和 ECMAScript 6 (2.0) 的向后编译都async计划用于 TypeScript。同时,Q 和 RSVP 都遵循 Promises/A+ 标准——并且两者都具有可从 Definitive Typed 获得的类型。

深入

有一个async关键字引入 TypeScript的建议。

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

真正的好消息是,事实上,将向后编译到 ES5(这是为 TypeScript 2.0 安排的)这不是 TypeScript 唯一的向后编译,所以不要太在意那些说 TypeScript 不会向 JavaScript 添加任何东西(除了类型)的人——对于许多 ECMAScript 6 功能已经可用或计划中的 polyfill,示例(但不限于):

  • import * from 'module';
  • let
  • 发电机
  • 异步/承诺
  • 解构

现在,在 TypeScript 1.7 中,甚至偶尔有 ECMAScript 7 功能登陆路线图。

于 2015-11-12T23:03:43.227 回答