javascript中throw和next方法的比较
1、生成器有throw方法,该方法与next的效果相同。
2、唯一的区别是next方法传输的参数回到正常值。throw方法传输的参数是错误的对象。
并且throw将该迭代器状态设置为迭代结束。
实例
function* generatorFunc () {console.log('function start...')
let res = yield 1
console.log('logger - 1', res)
res = yield 2
console.log('logger - 2', res)
res = yield 3
console.log('logger - 3', res)
return 'function end...'
}
const generator = generatorFunc()
generator.next() // 执行到 yield 1 语句停止
/**
* print: 'function start...'
* returns: { value: 1, done: false }
*/
// 若传递一个错误对象
generator.next(new Error('报错啦~')) // 执行到 yield 2 语句停止
/**
* print: 'logger - 1' [错误对象('报错啦~')]
* returns: { value: 2, done: false }
*/
generator.throw(new Error('报错啦~')) // 抛出错误,迭代结束
/**
* print: [错误对象('报错啦~')]
* returns: nothing...
*/
// 后续再调用 next() 返回 {value: undefined, done: true}
以上就是javascript中throw和next方法的比较,希望对大家有所帮助。更多Javascript学习指路:Javascript
推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。
以上是 javascript中throw和next方法的比较 的全部内容, 来源链接: utcz.com/z/545984.html