JavaScript ES6值得掌握的五大功能(2)JavaScript承诺

113 阅读1分钟

JavaScript ES6 Promises简化了异步任务的处理方式,这是在大多数现代Web应用程序中发挥作用的任务。JavaScript Promises不是依赖于JavaScript框架(如jQuery)所推广的回调函数,而是使用一种集中的,直观的机制来跟踪和响应异步事件。它不仅使调试异步代码变得更加容易,而且编写它也是一种乐趣。

所有JavaScript Promise都由 Promise() 构造函数生存和死亡:

<span style="color:#000000">const mypromise = new Promise(function(resolve,reject){
 //在这里运行的异步代码
 //调用resolve()表示任务已成功完成
 //调用reject()表示任务失败 
})</span>

在内部使用 resolve() reject() 方法,我们可以分别在履行和拒绝承诺时向Promise对象发出信号。在 then() catch() 随后方法可以调用采取fullfilled或拒绝承诺的善后工作。

我一直使用以下Promise注入的XMLHttpRequest函数的变体来顺序检索外部文件的内容,一个接一个地检索:

<span style="color:#000000">function getasync(url){
	返回新的Promise((resolve,reject)=> {
		const xhr = new XMLHttpRequest()
		xhr.open(“GET”,url)
		xhr.onload =()=> resolve(xhr.responseText)
		xhr.onerror =()=>拒绝(xhr.statusText)
		xhr.send()
	})
}
getasync('test.txt')。then((msg)=> {
	console.log(msg)//回显text.txt的内容
	return getasync('test2.txt')
})。then((msg)=> {
	console.log(msg)//回显text2.txt的内容
	return getasync('test3.txt')
})。then((msg)=> {
	console.log(msg)//回显text3.txt的内容
})</span>