我应该如何在Typescript中定义一个Promise回调的类型?

萨曼莎JT星

我正在使用Typescript和AngularJS。这是我在做什么的一个例子:

我有这个:

    this.userService.registerUser(
        this.registerData.userName,
        () => {
            self.registerData.error = false;
            self.registerData.message = self.registerData.userName + " has been registered";
            self.clearRegisterData();
        })
    }

我调用的函数是:

 registerUser = (
        userName: string,
        successCallback) => {   // << What's the type of successCallback ????????

        this.$http({
            method: 'POST',
            url: "/api/Account/Register",
            data: {
                userName: userName,
                firstName: firstName,
                lastName: lastName,
                email: email,
                password: password,
                confirmPassword: confirmPassword
            }
        })
            .success((data) => {
                if (typeof successCallback === 'function') {
                    successCallback(data);
                }
            });
    };

我只是显示代码的一部分,但我想知道什么是successCallback参数的类型?参数必须是一个函数,但是我应该定义一些特殊方法吗?另外,如果定义正确,我是否可以假设没有必要检查“ typeof successCallback ==='function'”?

巴萨拉特

答案很差,但您要求的答案

您可以轻松地内联完成

 registerUser = (
        userName: string,
        successCallback: (data)=>any) => {

基本上,您说的是可以接受一些数据参数,而我不在乎它返回什么。

如果您要返回承诺,则无需接受回调

你应该做:

 registerUser = (
        userName: string):ng.IPromise<any> => {   // No callback

        return this.$http({    // RETURN the promise
            method: 'POST',
            url: "/api/Account/Register",
            data: {
                userName: userName,
                firstName: firstName,
                lastName: lastName,
                email: email,
                password: password,
                confirmPassword: confirmPassword
            }
        })
    };

然后在呼叫站点上使用它:

this.userService.registerUser(this.registerData.userName)
    .then(() => {                                             // Note `then`
        self.registerData.error = false;
        self.registerData.message = self.registerData.userName + " has been registered";
        self.clearRegisterData();
    })

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该如何在Go中定义一个空切片?

来自分类Dev

创建一个promise回调

来自分类Dev

SCALA:我如何在未来的回调中发起另一个未来的调用

来自分类Dev

我得到一个类型“ {}”,我应该得到一个类型编号(TypeScript)

来自分类Dev

我应该如何在__init__中定义一个依赖于协程的变量?

来自分类Dev

如何在另一个类中实现Retrofit回调?

来自分类Dev

如何从回调中返回一个变量?

来自分类Dev

我如何在ASP.NET中创建一个回调函数,当引发数据库事件时调用该函数?

来自分类Dev

我应该如何在after_create回调中编写多个条件

来自分类Dev

如何在另一个类型的定义中与嵌套类型相交

来自分类Dev

我应该如何在Spring中实现一个缓存对象/系统?

来自分类Dev

我应该如何在Python中包装一个交互式子进程(例如shell)

来自分类Dev

我应该如何在Spring中实现一个缓存对象/系统?

来自分类Dev

在TypeScript中定义一个空的对象类型

来自分类Dev

在TypeScript中类型定义一个Enum

来自分类Dev

我到底如何编写一个回调函数来更改jquery的AJAX中的全局变量?

来自分类Dev

如果我不应该使用无符号,如何在类型级别指定一个非负数?

来自分类Dev

如何定义一个回调函数并在以后触发它?

来自分类Dev

我如何在我的 Ajax url 中定义一个 javascript 变量

来自分类Dev

delphi COM类型库中定义的方法应该如何实现,才能返回另一个COM对象?

来自分类Dev

如何在Swift中定义一个包含另一个无参数的函数的返回类型?

来自分类Dev

如何在React Typescript中处理一个父项下的不同类型

来自分类Dev

如何在ajax完成回调中返回promise?

来自分类Dev

如何在xsd中定义简单/复杂类型包含另一个XML?

来自分类Dev

在另一个查找(...)的内部回调中查找,如何从回调地狱中逃脱?

来自分类Dev

仅当我在一个线程中收到回调时才释放CountDownLatch

来自分类Dev

我可以从.then()回调中返回一个承诺吗?

来自分类Dev

为什么我的回调消息在另一个线程中执行?

来自分类Dev

如何在Matlab中将串行通信对象从一个回调传递到另一个回调

Related 相关文章

  1. 1

    我应该如何在Go中定义一个空切片?

  2. 2

    创建一个promise回调

  3. 3

    SCALA:我如何在未来的回调中发起另一个未来的调用

  4. 4

    我得到一个类型“ {}”,我应该得到一个类型编号(TypeScript)

  5. 5

    我应该如何在__init__中定义一个依赖于协程的变量?

  6. 6

    如何在另一个类中实现Retrofit回调?

  7. 7

    如何从回调中返回一个变量?

  8. 8

    我如何在ASP.NET中创建一个回调函数,当引发数据库事件时调用该函数?

  9. 9

    我应该如何在after_create回调中编写多个条件

  10. 10

    如何在另一个类型的定义中与嵌套类型相交

  11. 11

    我应该如何在Spring中实现一个缓存对象/系统?

  12. 12

    我应该如何在Python中包装一个交互式子进程(例如shell)

  13. 13

    我应该如何在Spring中实现一个缓存对象/系统?

  14. 14

    在TypeScript中定义一个空的对象类型

  15. 15

    在TypeScript中类型定义一个Enum

  16. 16

    我到底如何编写一个回调函数来更改jquery的AJAX中的全局变量?

  17. 17

    如果我不应该使用无符号,如何在类型级别指定一个非负数?

  18. 18

    如何定义一个回调函数并在以后触发它?

  19. 19

    我如何在我的 Ajax url 中定义一个 javascript 变量

  20. 20

    delphi COM类型库中定义的方法应该如何实现,才能返回另一个COM对象?

  21. 21

    如何在Swift中定义一个包含另一个无参数的函数的返回类型?

  22. 22

    如何在React Typescript中处理一个父项下的不同类型

  23. 23

    如何在ajax完成回调中返回promise?

  24. 24

    如何在xsd中定义简单/复杂类型包含另一个XML?

  25. 25

    在另一个查找(...)的内部回调中查找,如何从回调地狱中逃脱?

  26. 26

    仅当我在一个线程中收到回调时才释放CountDownLatch

  27. 27

    我可以从.then()回调中返回一个承诺吗?

  28. 28

    为什么我的回调消息在另一个线程中执行?

  29. 29

    如何在Matlab中将串行通信对象从一个回调传递到另一个回调

热门标签

归档