如何在JavaScript / Node中调用它?

时间:2017-08-20 17:48:37

标签: javascript function

我将发布两个快速示例,我想知道这些是怎样的

$.post('/path/to/file', {param1: 'value1'}, function(data, textStatus, xhr) {
/*optional stuff to do after success */
});

在post函数中有第三个参数,它是一个函数,但是data,textStatus和xhr可以在函数内使用,如何调用?即使我一直使用它们,我觉得我仍然不理解“用法”或整个事情,我的意思是,第三个参数如何返回或使内部函数的3个参数可用?

2 个答案:

答案 0 :(得分:2)

$.post(以及$.get$.ajax等)是jQuery在XMLHTTPRequest API之上的“糖”。第三个参数,即函数,称为回调,并在请求完成后以请求响应作为其参数调用。简化版本如下所示:

function post(endpoint, params, callback) {
  var http = new XMLHttpRequest();
  var url = endpoint;
  var params = params;
  http.open("POST", url, true);
  http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http.onreadystatechange = function() {
    if (http.readyState == 4 && http.status == 200) {

      // The callback is called with the text (and other parameters)
      // passed in as arguments
      // jQuery also returns textStatus, and the jQXHR object
      // https://api.jquery.com/jquery.post/
      callback(http.responseText));
    }
  }
  http.send(params);
}

它的使用方式与$.post完全相同。

post('http://example.com/post', {}, function (text) {
  console.log(text);
});

答案 1 :(得分:1)

您正在将字符串(路径),对象(选项字典)和lambda函数传递给jQuery.post。然后jQuery使用路径和选项代表您执行POST请求,当它完成时,使用3个参数调用该函数。

这是一个回调。