打字稿和异步调用

时间:2019-11-05 03:17:48

标签: typescript asynchronous promise

我正在使用TypeScript,并且想对rest服务进行异步调用。

我想确保其余呼叫在前进之前已经完成。

我将这些代码“拼凑”在一起,但是我不确定这是正确的还是完成此任务的最佳方法。

任何人都可以看看并提供反馈吗?我只是删除一条记录,我想返回一个布尔值,指示调用是否成功。

预先感谢

async SubmitRESTRequest() {

            var response: boolean;

            await new Promise(next => {

                try {
                    var promise = $.ajax({
                        url: 'https://mywebsite/deleteperson/1',                                                
                        type: 'DELETE'
                    }).then(function (data) {
                        response = true;
                    }).done(function (data) {
                        next();                        
                    }).fail(function (data) {
                        response = false;
                        next();
                    });
                }
                catch (err) {
                    response = false;
                    next();
                }
            });

            return response;

        }

我通过以下代码调用代码

var wardResponse:Boolean = await SubmitRESTRequest();

1 个答案:

答案 0 :(得分:1)

$.ajax返回的值足够接近可以await的承诺。通过在Promise构造函数中包装一个Promise oid,您正在做很多不必要的事情(并使用反模式),并且几乎完全击败了使用async / {{1 }}。

尝试一下。它要干净得多,并且至少应与您所拥有的一样好:

await