sequential promise 例3
Promise的并行顺序混合
by Sabrina Luo
JavaScript
var keywords = ['google', 'amazon', 'facebook'];
var api = 'https://api.github.com/search/users?q=';
// 这个函数不用理会,理解为promise包起来的$.get,resolve的是json格式的内容
function getData(url) {
return fetch(url).then(function(response) {
return response.json();
})
}
function getRepoName(url) {
return getData(url).then(function(repo) {
console.log(repo[0].full_name);
});
}
var promiseArrayOfStep1 = keywords.map(function(keyword) {
return getData(api + keyword);
})
var sequence = Promise.resolve();
promiseArrayOfStep1.forEach(function(promiseOfStep1) {
sequence = sequence.then(function() {
return promiseOfStep1.then(function(user) {
getRepoName(user.items[0].repos_url);
});
});
});