Promise.all() 也可以算作 async 函数应用:
- async function doAsyncOp() {
- var vals = await Promise.all([
- asynchronousOperation(),
- asynchronousOperation()
- ]);
- vals.forEach(console.log.bind(console));
- return vals;
- }
这里就算应用了 Promise.all,代码仍然很清跋扈。
处理拒绝
Promises 可以被接收(resovled)也可以被拒绝(rejected)。被拒绝的 Promise 可以经由过程一个函数来处理,这个处理函数要传递给 then,作为其第二个参数,或者传递给 catch 办法。如今我们没有应用 Promise API 中的办法,应当怎么处理拒绝?可以经由过程 try 和 catch 来处理。应用 async 函数的时刻,拒绝被算作缺点来传递,如许它们就可以经由过程 JavaScript 本身支撑的缺点处理代率攀来处理。
- function doAsyncOp() {
- return asynchronousOperation()
- .then(function(val) {
- return asynchronousOperation(val);
- })
- .then(function(val) {
- return asynchronousOperation(val);
- })
- .catch(function(err) {
- console.error(err);
- });
- }
这与我们链式处理的示例异常类似,只是把它的最后一环改成了调用 catch。如不雅用 async 函数来写,会像下面如许。
- async function doAsyncOp () {
- try {
- var val = await asynchronousOperation();
- val = await asynchronousOperation(val);
- return await asynchronousOperation(val);
- } catch (err) {
- console.err(err);
- }
推荐阅读
说到可视化,就不得不说一下大年夜数据,毕竟可视化是解决大年夜数据的一种高效的手段,而如今人人都在谈论大年夜数据,大年夜数据 ≠ 稀有据 ≠ 数据量大年夜, 离谱的是,如今就连>>>详细阅读
本文标题:用Async函数简化异步代码
地址:http://www.17bianji.com/lsqh/34848.html
1/2 1