色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript 2017異步

榮姿康1年前8瀏覽0評論

現在的Web應用已經不再是單純的靜態網頁,它們可以與用戶交互、訪問網絡、操作數據等等。而所有這些都需要處理io操作,這就會占據很多時間,而你的代碼需要等待這些操作完成才能繼續執行下去,這就導致了阻塞(blocking)。 近年來,隨著Web應用的復雜度增加,異步編程也成為了一個重要的主題。在這篇文章中,我們將會深入探討 javascript 2017 年異步編程的相關內容。

在 javascript 中,異步編程一般使用回調(callback) 和 Promise 兩種方式來完成。回調(callback) 是最常用的異步編程方式之一。 回調(callback) 函數就是在別的地方調用的函數,它是當某個事件發生或者當一個任務完成時被異步調用的函數,它的作用是在異步操作完成后執行某個操作。常見的例子包括在Node.js中處理HTTP請求,以及瀏覽器中的一些事件處理。

function readFile(filePath, callback) {
fs.readFile(filePath, function(err, data) {
if (err) {
callback(err);
} else {
callback(null, data);
}
});
}
readFile('./test.txt', function(err, data) {
if (err) {
console.error('Error:', err);
} else {
console.log('Data:', data.toString());
}
});

Promise 是一種現代的異步編程模型。Promise 是一個包含 resolve 和 reject 函數的對象,代表了某個操作(通常是一個異步操作)的完成。Promises 的主要優點是可以很好的處理異步代碼中的回調地獄(callback hell),更加清晰明了。Promise 的主要思想是,將異步操作放到 Pending(等待中),在異步操作完成后,再根據結果轉移到 Fulfilled(已完成)或者 Rejected(已拒絕)狀態,執行不同的操作。在下面的代碼中,Promise 的第一個函數接收日志字符串,并調用 resolve,而第二個函數調用 reject。

const fetchData = () =>{
return new Promise((resolve, reject) =>{
setTimeout(() =>{
resolve('Data fetched successfully!');
}, 2000);
});
}
fetchData()
.then((result) =>{
console.log(result);
})
.catch((error) =>{
console.log(error);
});

ES2017 中的 async 和 await 關鍵字讓異步代碼更加優雅。async / await 其實是語法糖,它的作用就是簡化 promise 的使用。async 表示函數是異步的,因此該函數總是返回一個 promise 對象。 await 關鍵字僅適用于 async 函數中,它告訴JavaScript引擎等待一個 promise 對象被 Resolve。下面舉個例子,其中我們通過異步調用的方式獲取了 Promise 處理的異步結果。

function fetchSpeciesWithFilms() {
return fetch('https://swapi.co/api/species/')
.then(response =>response.json())
.then(async ({ results }) =>{
let output = [];
for (let i = 0; i< results.length; i++) {
let species = results[i];
let films = [];
for (let j = 0; j< species.films.length; j++) {
let url = species.films[j];
let film = await fetch(url).then(response =>response.json());
films.push(film.title);
}
species.films = films;
output.push(species);
}
return output;
});
}

通過本篇文章的介紹,我們了解了 javascript 2017 異步編程的相關內容,包括回調(callback) 和 Promise、 async 和 await。它們各有優缺點,可以幫助你輕松地處理復雜的異步編程操作。正如我們所知道的那樣,異步編程是大勢所趨,同時也是 javascript 編程必須要掌握的一項技能。通過異步編程,你可以有效地改善 Web 應用程序的性能、訪問網絡并操作數據,因此,學習異步編程是非常重要的。

下一篇'conn.php'