co 里一段代码,看到时卡壳了。函数可以带参数不带无参数执行 - CNode技术社区

co 里一段代码,看到时卡壳了。函数可以带参数不带无参数执行
发布于 10 年前 作者 zysam 4534 次浏览 最后一次编辑是 9 年前 来自 问答

希望有人解释下这种处理,不怎么常见。

 onFulfilled();
 /**
 * @param {Mixed} res
 * @return {Promise}
 * @api private
 */
 function onFulfilled(res) {
 var ret;
 try {
 ret = gen.next(res);
 } catch (e) {
 return reject(e);
 }
 next(ret);
 }
	

还有一个简单的自动执行promise的功能写法:

	function run(gen){
	 var g = gen();
	
	 function next(data){
		var result = g.next(data);
		if (result.done) return result.value;
		result.value.then(function(data){
		 next(data);
		});
	 }
	
	 next();
	}
	run(gen);
2 回复

其实可以理解成都是带参数执行的,只是第一次作为入口函数执行时,参数传的是undefined。这个参数的作用是被用来当做上一次yield时的返回值,所以第一次调用时就是undefined咯。

@DavidCai1993 多谢提醒,看了 generator next函数,传值作用正如你所说。

回到顶部

AltStyle によって変換されたページ (->オリジナル) /