updated fiddle
改变
toDo
let obtainedItemsQueue = [];
function obtainItem(itemStr) {
let toDo = () => new Promise(resolve => {
$('.content').append(`<span class="text">${itemStr}</span>`);
$('.content').append('<button>Okay</button>');
$('button').on('click', function() {
$('.content').empty();
resolve(`${itemStr} is resolved.`);
});
});
obtainedItemsQueue.push(toDo);
}
obtainItem('map');
obtainItem('bag');
obtainItem('shirt');
改变链条,然后执行
item
function resolveItems() {
let chain = Promise.resolve();
obtainedItemsQueue.forEach((item) => {
chain = chain.then(item);
});
return chain;
}
resolveItems();