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

回到顶部