访问返回的承诺的结果
Accessing the result of a returned promise
我试图更好地理解承诺并实现了基本上如下所示的代码:
console.log(getRemoteData())
function getRemoteData (){
return fetch('http://w.x.y.z')
.then(response => {
return response.json();
});
}
假设 getRemoteData()
returns 一个承诺,我如何访问该响应的值?我试图在登录到控制台之前解决承诺,但除了记录承诺 obj 之外,我无法让它做任何事情。我想我错过了承诺如何运作的一个基本组成部分。
我已经尝试搜索 SO,我找到的所有答案都指向 .then()
方法中的 //do something with the returned data
评论,但我想从那里了解我应该做什么。返回值是 array[]
.
fetch(...)
returns一个承诺,response.json()
returns另一个承诺。
返回的值不是一个数组,而是一个promise数组。应该是:
getRemoteData().then(result => {
console.log(result);
});
结构可以像 async
函数 (ES2017) 中的同步代码一样被扁平化。它们是 promises 的语法糖,这个片段与上一个片段相同:
(async () => {
const result = await getRemoteData();
console.log(result);
})();
如果您仍在使用 ES2015,则使用 co
var co = require('co');
co(function *(){
// yield any promise
var result = yield getRemoteData();
}).catch(onerror);
我试图更好地理解承诺并实现了基本上如下所示的代码:
console.log(getRemoteData())
function getRemoteData (){
return fetch('http://w.x.y.z')
.then(response => {
return response.json();
});
}
假设 getRemoteData()
returns 一个承诺,我如何访问该响应的值?我试图在登录到控制台之前解决承诺,但除了记录承诺 obj 之外,我无法让它做任何事情。我想我错过了承诺如何运作的一个基本组成部分。
我已经尝试搜索 SO,我找到的所有答案都指向 .then()
方法中的 //do something with the returned data
评论,但我想从那里了解我应该做什么。返回值是 array[]
.
fetch(...)
returns一个承诺,response.json()
returns另一个承诺。
返回的值不是一个数组,而是一个promise数组。应该是:
getRemoteData().then(result => {
console.log(result);
});
结构可以像 async
函数 (ES2017) 中的同步代码一样被扁平化。它们是 promises 的语法糖,这个片段与上一个片段相同:
(async () => {
const result = await getRemoteData();
console.log(result);
})();
如果您仍在使用 ES2015,则使用 co
var co = require('co');
co(function *(){
// yield any promise
var result = yield getRemoteData();
}).catch(onerror);