我正在使用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();
答案 0 :(得分:1)
从$.ajax
返回的值足够接近可以await
的承诺。通过在Promise
构造函数中包装一个Promise oid,您正在做很多不必要的事情(并使用反模式),并且几乎完全击败了使用async
/ {{1 }}。
尝试一下。它要干净得多,并且至少应与您所拥有的一样好:
await