Javascript 这是按顺序运行代码段的好方法吗?

Javascript 这是按顺序运行代码段的好方法吗?,javascript,Javascript,每个脚本都依赖于前者完成 这是个好办法吗[…] 否,但是,如果内部的javascript是同步的,它将工作。当你决定做一些异步的事情(例如:fetch.js和download.js听起来好像他们会做一些异步的事情)的时候,它就不起作用了 在每个文件中包装并公开一个异步函数怎么样 例如,您可以让您的fetch.js有一个名为function myFetch(){…}的包装函数,让您的download.js有一个名为function myDownload(){…}的包装函数,然后简单地对从每个脚本

每个脚本都依赖于前者完成

这是个好办法吗[…]

,但是,如果内部的javascript是同步的,它将工作。当你决定做一些异步的事情(例如:
fetch.js
download.js
听起来好像他们会做一些异步的事情)的时候,它就不起作用了


在每个文件中包装并公开一个异步函数怎么样

例如,您可以让您的
fetch.js
有一个名为
function myFetch(){…}
的包装函数,让您的
download.js
有一个名为
function myDownload(){…}
的包装函数,然后简单地对从每个脚本文件中公开的每个包装函数使用
wait

//fetch.js文件
函数myFetch(){
返回新承诺((解决)=>{
设置超时(()=>{
log(“我的抓取完成”);
解决(“myFetch”);
}, 500);
})
}
//下载.js文件
函数myDownload(){
返回新承诺((解决)=>{
设置超时(()=>{
log(“我的下载完成”);
解决(“我的下载”);
}, 100);
})
}
//main.js文件
异步函数myMain(){
//“同步”
const res1=等待myFetch();
const res2=等待我的下载();
console.log('final log',res1,res2);
}

myMain()很难说不知道每个文件到底在做什么。但是,一般来说,让代码在顶层执行不是一个好的实践。在大多数情况下,在函数中包含代码会更干净,然后导入的代码可以手动调用所需的函数。不,绝对不是。照@Carcigenicate说的做。这是时间耦合;执行取决于上面列出的顺序,这实际上保证了将来的bug。首先,这很容易被有意或无意地重新安排。即使是有目的的重新安排也会破坏它;谁知道里面是什么鬼东西。这是完全不明显的,这些必须在任何顺序在所有。随着时间的推移,这需要非常大的额外努力才能继续工作。这是我最初的想法,但它不起作用。查看您的代码,我明白我必须在等待的函数中包含async\Wait和承诺?@Yigal yes您的函数应该通过使用
async
关键字或在函数本身中返回
新承诺来返回承诺。
<script src="./js/id.js"></script>
<script src="./js/fetch.js"></script>
<script src="./js/download.js"></script>
<script src="./js/playback.js"></script>