<p>سلام وقت بخیر</p><p>در مثال آخر دقیقا داره چه اتفاقی میافته؟ طبق توضیحات مگه نباید وقتی ask1 رو لاگ میکنیم، نتیجه 2+2 رو ببینیم؟ پس چرا وقتی من 4 رو به عنوان ورودی تابع ()next نمیدم و برای بار دوم بدون ورودی فراخوانی میکنم، مقدار undefined چاپ میشه؟ یا هر عدد دیگه ای به جز 4 رو به عنوان ورودی بدم، همون عدد رو لاگ میکنه!</p><p>یا مثلا در اون بخش مقایسه ای (generator.next(9).done) من هر عدد دیگه ای به جز 9 به عنوان ورودی میدم، چرا باز هم مقدار true برمی گردونه؟</p><p>اینم از کد:</p><pre class=\"ql-syntax\" spellcheck=\"false\"><span class=\"hljs-keyword\">function</span>* <span class=\"hljs-title function_\">gen</span>() {
<span class=\"hljs-keyword\">let</span> ask1 = <span class=\"hljs-keyword\">yield</span> <span class=\"hljs-string\">\"2 + 2 = ?\"</span>;
<span class=\"hljs-variable language_\">console</span>.<span class=\"hljs-title function_\">log</span>(ask1); <span class=\"hljs-comment\">// 4</span>
<span class=\"hljs-keyword\">let</span> ask2 = <span class=\"hljs-keyword\">yield</span> <span class=\"hljs-string\">\"3 * 3 = ?\"</span>
<span class=\"hljs-variable language_\">console</span>.<span class=\"hljs-title function_\">log</span>(ask2); <span class=\"hljs-comment\">// 9</span>
}
<span class=\"hljs-keyword\">let</span> generator = <span class=\"hljs-title function_\">gen</span>();
<span class=\"hljs-variable language_\">console</span>.<span class=\"hljs-title function_\">log</span>(generator.<span class=\"hljs-title function_\">next</span>().<span class=\"hljs-property\">value</span>); <span class=\"hljs-comment\">// \"2 + 2 = ?\"</span>
<span class=\"hljs-variable language_\">console</span>.<span class=\"hljs-title function_\">log</span>(generator.<span class=\"hljs-title function_\">next</span>(<span class=\"hljs-number\">4</span>).<span class=\"hljs-property\">value</span>); <span class=\"hljs-comment\">// \"3 * 3 = ?\"</span>
<span class=\"hljs-variable language_\">console</span>.<span class=\"hljs-title function_\">log</span>(generator.<span class=\"hljs-title function_\">next</span>(<span class=\"hljs-number\">8</span>).<span class=\"hljs-property\">done</span>); <span class=\"hljs-comment\">// true</span>
</pre>