Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

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

$
0
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 等待多个异步便可以解决好多问题;可以替换好多 异步编程的包包


Viewing all articles
Browse latest Browse all 14821

Trending Articles