Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 类型脚本和异步调用_Typescript_Asynchronous_Promise - Fatal编程技术网

Typescript 类型脚本和异步调用

Typescript 类型脚本和异步调用,typescript,asynchronous,promise,Typescript,Asynchronous,Promise,我正在使用TypeScript,我想对rest服务进行异步调用 我希望在继续之前确保rest调用已完成 我已经“拼凑”了这段代码,但我不确定它是正确的还是完成这项任务的最佳方式 有人能看一下并提供反馈吗?我只是删除一条记录,我想返回一个布尔值,指示调用是否成功 提前谢谢 async SubmitRESTRequest() { var response: boolean; await new Promise(next => {

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

我希望在继续之前确保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();

$.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%是多余的。