了解 Fetch() Javascript
Understanding Fetch() Javascript
我正在学习 javascript 教程,我需要一些帮助来理解以下函数中的模式:
get: function(url) {
return fetch(rootUrl + url, {
headers: {
'Authorization': 'Client-ID ' + apiKey
}
} )
.then(
function(response) {
return response.json();
}
);
}
我感到困惑的是,如果我们实际上只关心 response.json(),那么返回 fetch() 有什么意义?
return
fetch
用于将 .then()
、.catch()
链接到 .get()
调用的能力,例如
obj.get(url).then(function(data) {
console.log(data)
})
没有 return
语句 obj.get(url).then(handler)
如果对象没有 属性 命名的 then
可能会记录错误,其中值是一个处理 Promise
返回的函数fetch
,其中 get
函数
没有返回任何值
var objWithReturn = {
get: function(url) {
return Promise.resolve(url)
.then(
function(response) {
return JSON.parse(response);
}
);
}
}
objWithReturn.get('{"a":1}')
.then(function(data) {
console.log(data)
})
var objWithoutReturn = {
get: function(url) {
Promise.resolve(url)
.then(
function(response) {
return JSON.parse(response);
}
);
}
}
objWithoutReturn.get('{"a":1}')
.then(function(data) {
console.log(data)
})
它没有返回 fetch()
。当您编写链式函数调用时:
return f1(args).f2(otherargs);
相当于:
var temp1 = f1(args);
var temp2 = temp1.f2(otherargs);
return temp2;
所以你的函数可以写成:
get: function(url) {
var promise1 = fetch(rootUrl + url, {
headers: {
'Authorization': 'Client-ID ' + apiKey
}
});
var promise2 = promise1.then(function(response) {
return response.json();
});
return promise2;
}
现在您可以看到它 returns 承诺,当它被填满时,returns 来自响应的 JSON。
我正在学习 javascript 教程,我需要一些帮助来理解以下函数中的模式:
get: function(url) {
return fetch(rootUrl + url, {
headers: {
'Authorization': 'Client-ID ' + apiKey
}
} )
.then(
function(response) {
return response.json();
}
);
}
我感到困惑的是,如果我们实际上只关心 response.json(),那么返回 fetch() 有什么意义?
return
fetch
用于将 .then()
、.catch()
链接到 .get()
调用的能力,例如
obj.get(url).then(function(data) {
console.log(data)
})
没有 return
语句 obj.get(url).then(handler)
如果对象没有 属性 命名的 then
可能会记录错误,其中值是一个处理 Promise
返回的函数fetch
,其中 get
函数
var objWithReturn = {
get: function(url) {
return Promise.resolve(url)
.then(
function(response) {
return JSON.parse(response);
}
);
}
}
objWithReturn.get('{"a":1}')
.then(function(data) {
console.log(data)
})
var objWithoutReturn = {
get: function(url) {
Promise.resolve(url)
.then(
function(response) {
return JSON.parse(response);
}
);
}
}
objWithoutReturn.get('{"a":1}')
.then(function(data) {
console.log(data)
})
它没有返回 fetch()
。当您编写链式函数调用时:
return f1(args).f2(otherargs);
相当于:
var temp1 = f1(args);
var temp2 = temp1.f2(otherargs);
return temp2;
所以你的函数可以写成:
get: function(url) {
var promise1 = fetch(rootUrl + url, {
headers: {
'Authorization': 'Client-ID ' + apiKey
}
});
var promise2 = promise1.then(function(response) {
return response.json();
});
return promise2;
}
现在您可以看到它 returns 承诺,当它被填满时,returns 来自响应的 JSON。