Ich habe fetch()
kürzlich mit der API herumgespielt und etwas bemerkt, das etwas schrullig war.
let url = "http://jsonplaceholder.typicode.com/posts/6";
let iterator = fetch(url);
iterator
.then(response => {
return {
data: response.json(),
status: response.status
}
})
.then(post => document.write(post.data));
;
post.data
gibt ein Promise
Objekt zurück.
http://jsbin.com/wofulo/2/edit?js,output
Wenn es jedoch wie folgt geschrieben ist:
let url = "http://jsonplaceholder.typicode.com/posts/6";
let iterator = fetch(url);
iterator
.then(response => response.json())
.then(post => document.write(post.title));
;
post
Hier ist ein Standard, auf Object
den Sie zugreifen können.
http://jsbin.com/wofulo/edit?js,output
Meine Frage lautet also: Warum wird response.json
ein Versprechen in einem Objektliteral zurückgegeben, aber der Wert wird zurückgegeben, wenn er gerade zurückgegeben wird?
response.json()
Versprechen möglicherweise abgelehnt wird, wenn die Antwort nicht gültig ist. JSON.