function* help(){
const aa = yield 'no_help';
return aa;
}
const a = help();
a.next()// valid output
a.next('helping hand')// valid output
在我已经阅读了yield的文档中,完全消耗了下一个调用,所以我的困惑是,然后我们如何才能再次调用下一个方法,如上所示,其中包含一些值
答案 0 :(得分:1)
通过使用yield
,您可以将函数“拆分”为多个部分,可以分别执行(但只能按顺序执行):
function* help(){
// part 1starts
//....
const aa = yield 'no_help'; // part 1 ends
// part 2 starts
// ...
return aa; // part 2 ends
}
如果您调用a.next()
,则第1部分将执行直到yield
和中间结果'no_help'
返回到调用为止。然后调用a.next('your helping hand')
,它将执行第2部分,您将获得函数返回的内容。由于没有第三方再次调用a.next()
,因此无法正常工作。