使用await运算符在Javascript中同步加载文件

时间:2017-02-27 02:51:21

标签: javascript sequential ecmascript-2017

最近,我已经读过Javascript中有一个等待运算符来等待异步函数返回的Promise对象。

我的目标是只使用标准Javascript提供的函数,而无需任何外部库。所以我的问题是:如何有效地使用await运算符顺序从服务器获取数据(一个文件接一个)?

1 个答案:

答案 0 :(得分:0)

我设法得到了我想要的东西。 第一步是创建一个async function,然后将您需要执行的所有代码放在该函数中,就好像它是同步的一样。 以下是代码段:

<html>
<body>
</body>
</html>

<script>

var fileList = [ 
'test_1.txt', 
'test_2.txt',
'test_3.txt',
'test_4.txt',
'test_5.txt'
];

async function loadFiles() 
{
    for (i = 0; i < fileList.length; i++)
    {
        await fetch(fileList[i]).then(function(response){
            return response.text();
        }).then(function (text){
            console.log(text);
        });
        console.log("loaded " + fileList[i]);
    }
}

loadFiles();

</script>

这样,所有文件将一个接一个地加载。 在这些日子里做这件事真是太了不起了,因为很容易在javascript中管理以前异步完成的顺序任务。