IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    对于es7 async/await 的推崇和举得例子;不知道是我理解的不够;还是例子举得混淆

    slclub发表于 2017-01-20 09:09:52
    love 0

    个人观点 async /await 设计还真不咋地

    如果async 是这样的语法 async function() { //异步1 setTimeout(function(){}, 0); // 异步2 setImmediate(function(){}, 0);

    	// 等所有异步都执行完事,在执行的函数
    	await function() {};
    	// 函数内可以先执行的code  比await靠前执行
    	do somethings ...
    	return ;
    }
    

    很好的解决了异步编写的问题;

    网上的例子 大多还结合promise使用 我想这个东西出来的目的,是为了让代码更易于理解;promise , genorator 都不是node异步 编程方式的最终解决方案,所以才出这些个新功能。我感觉这玩意有嫌弃 promise genorator 的嫌疑。 你结合这些玩意写例子,我感觉是不是 误人子弟了啊。

    • 反例1

    async/Await应该是目前最简单的异步方案了,首先来看个例子。

    这里我们要实现一个暂停功能,输入N毫秒,则停顿N毫秒后才继续往下执行。

    var sleep = function (time) {
    	return new Promise(function (resolve, reject) {
    		setTimeout(function () {
    			resolve();
    		}, time);
    	})
    };
    
    var start = async function () {
    	// 在这里使用起来就像同步代码那样直观
    	console.log('start');
    	await sleep(3000);
    	console.log('end');
    };
    

    start(); 控制台先输出start,稍等3秒后,输出了end。

    上面这个例子我没感觉很能说明异步编程的方式; 多个 await function await function

    这成了同步代码;

    ES7出来个这玩意,难道还要让人们自己去实现 parellel,promise 等方式异步编程么;

    我个人感觉,一个 await 等待多个异步便可以解决好多问题;可以替换好多 异步编程的包包



沪ICP备19023445号-2号
友情链接