理解js中的fetch

Sea*_*yar 2 javascript fetch promise service-worker

我检查了一些资源,但没有真正得到fetch方法.

2 then-s有什么意义?第一个和第二个then好处是什么?为什么是return第一个?

fetch('http://some-site.com/cors-enabled/some.json')  
  .then(function(response) {  
    return response.text();  
  })  
  .then(function(text) {  
    console.log('Request successful', text);  
  })  
  .catch(function(error) {  
    log('Request failed', error)  
  });
Run Code Online (Sandbox Code Playgroud)

JSc*_*her 7

这些then电话是基于所谓的Promises.有关详细说明,请参阅Mozilla文档中Promises.

链接是Promises的特殊用例.在您的代码片段中,链接首先用于从外部请求响应(return response.text();)的结果中提取文本.然后将返回值作为参数提供给第二个then(),将其记录到控制台上.

如果您想要执行多个单独的,可能是异步的操作并希望将它们分开并序列化,这将特别有用.如果这些操作中的任何一个失败,catch则会立即调用,例如异常.