sequential promise 例2
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 getRepoUrl(url) {
return getData(url).then(function(user) {
return user.items[0].repos_url
})
}
function getRepoName(url) {
return getData(url).then(function(repo) {
console.log(repo[0].full_name);
});
}
var sequence = Promise.resolve();
keywords.forEach(function(keyword) {
var searchAPI = api + keyword
sequence = sequence.then(function() {
return getRepoUrl(searchAPI);
}).then(getRepoName);
});