当前位置:  开发笔记 > 编程语言 > 正文

如何实现Typescript异步等待模式:Promise在哪里

如何解决《如何实现Typescript异步等待模式:Promise在哪里》经验,为你挑选了0个好方法。

我正在学习角度和打字稿.

我在这个服务中有一个CustomerService我有一个方法,我希望从RESTfull服务返回一组客户.

最初我创建了我的GetCustomers函数:

public GetCustomers(): Dtos.ICustomer[] {

        var _customers: Dtos.ICustomer[];
        this._httpService.get('http://localhost/myTestApi/api/customers/')
            .success(function (data) {

                _customers = data as Dtos.ICustomer[];
            }).error(function (error) {
                console.log(error);
            });
        return _customers;
    }

这个函数最终得到了客户,但显然它会在httpservice实际获取数据之前返回_customers.

此时我以为我可以使用Typscript async/await,这就是我在一团糟中结束的时候.

我想写这样的函数:

public async GetCustomers(): Dtos.ICustomer[] {

        var _customers: Dtos.ICustomer[];
        await this._httpService.get('http://localhost/myTestApi/api/customers/')
            .success(function (data) {

                _customers = data as Dtos.ICustomer[];
            }).error(function (error) {
                console.log(error);
            });
        return _customers;
    }

我立即得到此错误:错误TS1055类型'Dtos.ICustomer []'不是有效的异步函数返回类型.

我找到了这个Async/Await,简单的例子(typescript)

但它使用Promise对象:返回新的Promise

如果我尝试重写我的GetCustomers方法签名:

public async GetCustomers(): Promise {}

我得到并且错误:

找不到名字'承诺'

我需要导入一些东西来获得承诺吗?

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有