糞仕様言語でも意外と何とかなるものですね。
これまでJSDeferredでcallback地獄を回避していたのですが、エラーハンドリングをミスると例外が飲み込まれてしまうのとcancelまわりがややトリッキーな感じがしていたので、今度からこれ使おうかと思います。
追記
これBlockがあると破綻しますね。マクロもCPSも難しい。
		
		
			
			
			
			
				
					
				|  | async: {   var x = await(yield_, setTimeout(function() { yield_(123); }, 1000));   console.log(x);   if (x != 0) {     var y = await(yield_, setTimeout(function() { yield_(x+x); }, 2000));     console.log(y);   } } | 
				
			 
		 
関連文書:
							
												
						 
						
						 
最近のコメント