request.execute是什么意思(function(resp){});在Javascript?

时间:2015-07-17 08:12:12

标签: javascript api request server

用例是调用(Google云端硬盘)API来获取数据。我理解执行请求的第一部分。但是为什么我们将response传递给函数?如果有的话,我们不会得到回复吗?

是否有很好的资源来理解请求/响应以及服务器在概念上如何工作?或者有人会发布一个类比?

如何获取回复的属性?

1 个答案:

答案 0 :(得分:3)

  

request.execute(function(resp){});

的含义是什么?

它调用request.execute,传入函数表达式function(resp){}创建的函数。该示例中的功能没有做任何事情。

  

但为什么我们将响应传递给函数?

我们不是。

  

如果有的话,我们不会得到回复吗?

是的,那就是代码的作用。您将写入的函数传递给request.execute将使用提供响应的参数调用。该函数接受该响应为resp,您可以在代码中使用它。

传递给execute的函数称为回调,因为execute会在响应可用时将其调回。这是你想要搜索的术语,以便找到教程等。另外(因为这个例子几乎肯定是异步的)你想要寻找"异步编程"和类似的。

这是一个异步调用回调函数的简单示例:



function execute(callback) {
  setTimeout(function() {
    callback(Math.floor(Math.random() * 100));
  }, 500);
}

snippet.log("Calling execute");
execute(function(resp) {                                // <= This is the part
  snippet.log("Got callback, resp = " + resp);          // <= like your
});                                                     // <= example
snippet.log("Done calling execute, waiting for callback");
&#13;
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;
&#13;
&#13;

并非所有回调都是异步的。例如,您给Array#sort的回调是同步的:

&#13;
&#13;
var a = [1, 7, 3, 42];

snippet.log("Calling Array#sort, array is: " + a.join(", "));
a.sort(function(a, b) {                                   // <= This is
  snippet.log("Comparing " + a + " and " + b);            // <= the part
  return b - a;                                           // <= like your
});                                                       // <= example
snippet.log("Done calling Array#sort, array is now: " + a.join(", "));
&#13;
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;
&#13;
&#13;