如何使用ES6中的方法控制字符串执行顺序
ES6中引入了许多新特性,其中包括一些操作异步的方式。在这些方式中,Generator函数中的yield表达式可以用于暂停执行,而next()方法则可以用于继续执行。下面通过实例来说明如何使用这些方法
ES6中引入了许多新特性,其中包括一些操作异步的方式。在这些方式中,Generator函数中的yield表达式可以用于暂停执行,而next()方法则可以用于继续执行。下面通过实例来说明如何使用这些方法。
定义并调用sayHi函数
首先,在已经创建好的JavaScript文件中,定义一个名为sayHi的函数,并在其中使用yield表达式,并返回一个值。代码示例如下:
function* sayHi() {
yield 'H';
yield 'e';
yield 'l';
yield 'l';
yield 'o';
}
接着,我们可以通过调用该函数并赋值给一个变量sh,然后使用next()方法调用五次,并打印对应的结果。代码示例如下:
let sh sayHi();
console.log(()); // {value: "H", done: false}
console.log(()); // {value: "e", done: false}
console.log(()); // {value: "l", done: false}
console.log(()); // {value: "l", done: false}
console.log(()); // {value: "o", done: false}
在保存代码并打开浏览器查看结果时,可以发现前三次打印对应的字符,done的值为false;第四次返回的value为undefined,done的值为true;第五次的value为undefined,done的值也为true。
定义并调用computeSum函数
接下来,我们可以使用同样的方法来定义一个名为computeSum的函数,并在其中利用if语句和三目表达式返回一个计算表达式的结果。代码示例如下:
function* computeSum(flag) {
let a 1;
let b 2;
if (flag) {
yield a b;
} else {
yield a - b;
}
}
然后,我们可以将该函数赋值给一个变量cs,并使用next()方法调用四次,并打印对应的结果。代码示例如下:
let cs computeSum(true);
console.log(()); // {value: 3, done: false}
console.log(()); // {value: undefined, done: true}
console.log(()); // {value: undefined, done: true}
console.log(()); // {value: undefined, done: true}
当预览页面结果时,可能会发现出现报错。这是因为在函数中需要传入一个参数flag。