javascript中throw和next方法的比较

500次阅读
没有评论

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电脑。

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:JavaScript2022-12-15发表,共计991字。
新手QQ群:570568346,欢迎进群讨论 Python51学习