js 如何执行完一个异步的任务,在去执行另一个
2022-10-28 18:50:36 来源:admin 点击:757
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
//方式一
new Promise(resolve => {
setTimeout(() => {
console.log('1', '我是第一个任务,必须第一个执行');
resolve(1);
}, 3000);
}).then((val) => {
new Promise(resolve => {
setTimeout(() => {
console.log('2', '我是第二个任务,等带1完成后执行');
resolve(2);
}, 3000);
}).then(val => {
setTimeout(() => {
console.log('3', '我是第三个任务,等带2完成后执行');
}, 2000);
});
});
//方式二,可跨页面调用
window.addEventListener('zfxFileUpLoad', function(){
setTimeout(() => {
console.log('5', '我是第五个任务,我需要等4执行完成后,才执行');
}, 2000);
}, false);
setTimeout(() => {
console.log('4', '我是第四个任务');
window.dispatchEvent(new Event('zfxFileUpLoad'));
}, 2000);
//方式三,可跨页面调用
var initCheck = self.setInterval(function(){
if(sessionStorage.getItem("zfx123")){
window.clearInterval("initCheck");
sessionStorage.removeItem("zfx123");
console.log('7', '我是第七个任务,我必须先完成6才执行');
}
},1000);
setTimeout(() => {
console.log('6', '我是第六个任务');
sessionStorage.setItem("zfx123", "true")
}, 2000);
</script>
</body>
</html>