这些代码看着就头痛。嵌套(6层),括号,return语句很轻易让人认为迷茫,而它们只是须要将最终结不雅传递到最外层的Promise。
最后一点,也是异常重要的一点在于,async/await可以或许使得代码调试更简单。2个来由使得调试Promise变得异常苦楚:
- const makeRequest = async () => {
- const data = await getJSON()
- if (data.needsAnotherRequest) {
- const moreData = await makeAnotherRequest(data);
- console.log(moreData)
- return moreData
- } else {
- console.log(data)
- return data
- }
- }
4. 中心值
你很可能碰到过如许的场景,调用promise1,应用promise1返回的结不雅去调用promise2,然后应用两者的结不雅去调用promise3。你的代码很可能是如许的:
- const makeRequest = () => {
- return promise1()
- .then(value1 => {
- return promise2(value1)
- .then(value2 => {
- return promise3(value1, value2)
- })
- })
- }
如不雅promise3不须要value1,可以很简单地将promise嵌套铺平。如不雅你忍耐不了嵌套,你可以将value 1 & 2 放进Promise.all来避免深层嵌套:
- const makeRequest = () => {
- return promise1()
- .then(value1 => {
- return Promise.all([value1, promise2(value1)])
- })
- .then(([value1, value2]) => {
- return promise3(value1, value2)
- })
推荐阅读
Android Studio jni开发入门——看我就够了!
至此就成功运行出jni的Hello World了 一、情况设备重要须要设备的就是NDK(Native Development Kit),如今Android studio很便利,可以一键下载: file → setting → 按截图找到如>>>详细阅读
本文标题:Async/Await替代Promise的6个理由
地址:http://www.17bianji.com/lsqh/34696.html
1/2 1