Typescript 类型脚本和异步调用
我正在使用TypeScript,我想对rest服务进行异步调用 我希望在继续之前确保rest调用已完成 我已经“拼凑”了这段代码,但我不确定它是正确的还是完成这项任务的最佳方式 有人能看一下并提供反馈吗?我只是删除一条记录,我想返回一个布尔值,指示调用是否成功 提前谢谢Typescript 类型脚本和异步调用,typescript,asynchronous,promise,Typescript,Asynchronous,Promise,我正在使用TypeScript,我想对rest服务进行异步调用 我希望在继续之前确保rest调用已完成 我已经“拼凑”了这段代码,但我不确定它是正确的还是完成这项任务的最佳方式 有人能看一下并提供反馈吗?我只是删除一条记录,我想返回一个布尔值,指示调用是否成功 提前谢谢 async SubmitRESTRequest() { var response: boolean; await new Promise(next => {
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();
从
$.ajax
返回的值非常接近您可以等待它的承诺。通过在promise
构造函数中包装一个promise oid,您正在做一大堆不必要的事情(并且使用了反模式),并且几乎完全违背了使用async
/wait
的目的
试试这个。它更干净,至少应该和你那里的一样好:
async SubmitRESTRequest() {
try {
await $.ajax({
url: 'https://mywebsite/deleteperson/1',
type: 'DELETE'
});
return true;
} catch (e) {
return false;
}
}
当你运行这个时会发生什么?它能工作吗?如果不起作用,请描述什么不起作用。谢谢。您的代码可以简化为以下内容:
var result=$.ajax({url,键入:'delete'})。然后(()=>true)。catch(()=>false)
。其中90%是多余的。