这种办法为了可读性就义了语义。除了避免嵌套,并没有其他来由将value1和value2放在一个数组中。
应用async/await的话,代码会变得异常简单和直不雅。
- const makeRequest = async () => {
- const value1 = await promise1()
- const value2 = await promise2(value1)
- return promise3(value1, value2)
- }
5. 缺点栈
下面示例中调用了多个Promise,假设Promise链中某个处所抛出了一个缺点:
- const makeRequest = () => {
- return callAPromise()
- .then(() => callAPromise())
- .then(() => callAPromise())
- .then(() => callAPromise())
- .then(() => callAPromise())
- .then(() => {
- throw new Error("oops");
- })
- }
- makeRequest()
- .catch(err => {
- console.log(err);
- // output
- // Error: oops at callAPromise.then.then.then.then.then (index.js:8:13)
- })
Promise链中返回的缺点栈没有给掉足误产生地位的线索。更糟糕的是,它会误导我们;缺点栈中独一的函数名为callAPromise,然而它和缺点没有关系。(文件名和行号照样有效的)。
然而,async/await中的缺点栈会指向缺点地点的函数:
Async/Await语法
- const makeRequest = async () => {
- await callAPromise()
- await callAPromise()
- await callAPromise()
- await callAPromise()
- await callAPromise()
- throw new Error("oops");
- }
- makeRequest()
- .catch(err => {
推荐阅读
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