-1
最近,我讀了Javascript中有一個await運算符,用於等待由異步函數返回的Promise對象。用Javascript同步加載文件並等待運營商
我的目標是隻使用標準Javascript提供的函數,而不需要任何外部庫。所以我的問題是:我怎樣纔能有效地使用await
操作符從服務器中依次獲取數據(一個接一個的文件)?
最近,我讀了Javascript中有一個await運算符,用於等待由異步函數返回的Promise對象。用Javascript同步加載文件並等待運營商
我的目標是隻使用標準Javascript提供的函數,而不需要任何外部庫。所以我的問題是:我怎樣纔能有效地使用await
操作符從服務器中依次獲取數據(一個接一個的文件)?
我設法得到我正在尋找的東西。 第一步是創建一個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中的順序任務。
'await'不會讓您的代碼同步。它允許你編寫*看起來*同步的代碼(因此可能更容易遵循)。如果你想依次獲取文件,你只需按順序「等待」提取:var a = await fetchFile(...); var b = await fetchFile(...); ...'。 –
所有你需要的是[Fetch API](https://developer.mozilla.org/en/docs/Web/API/Fetch_API)。 – Ryan