Javascript,AJAX:等待AJAX​​ click方法完成以执行另一个功能。如何执行?

var err=0;
  $("#addsell").click(function(e) {
    e.preventDefault();
    var data = {
            title: $('#title').val(),
            author: $("#author").val(),
            genre: $('#genre').val(),
            price: $('#price').val(),
            addDate: Date(),
            isbn: $('#isbn').val()
    };

    if(data.title.length==0) {
      $('#errtitle').show();
      err++;
    }
    else $('#errtitle').hide();

    if(data.author.length==0) {
      $('#errauthor').show();
      err++;
    }
    else $('#errauthor').hide();

    if(data.price.toString().length==0) {
      $('#errprice').show();
      err++;
    }
    else $('#errprice').hide();

    if((data.isbn.toString().length==10)||(data.isbn.toString().length==13)||(data.isbn.toString().length==0)) {
      $('#errisbn').show();
      err++;
    }
    else $('#errisbn').hide();

    console.log(data);
  }).then(function() {
    if(err!=0){
      err=0;
      $.post("/api/newbook", data, function(resp, status){
        if(resp==1){
          $('#addform').hide();
          $('#added').show();
        }
      });
    }
  });

这是我当前的代码。我知道这行不通。我想做的是在执行onlick ajax调用之后,我希望其余代码可以运行。我不希望它运行之前或之后。我对诺言,异步和等待不那么熟悉。所以我需要帮助来实现这一点。

评论