Nobody Publish Monsters

    await-go
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.0 • Public • Published

    go.js

    let es6 async/await error handler like go

    install

    yarn add @hufeng/go.js

    why?

    统一 promise 的错误处理机制
    在使用 async/await 的过程中,对于错误的处理,通常第一选择是 try/catch,
    但是常常会出现 nested try/catch,代码就不会那么优雅
    针对异常或者异常的处理有很多方式,命令式的 try/catch, 函数式的 Optional, Either
    还比如 go 的多返回值,
    f, err := os.Open("filename.ext")
    if err != nil {
    log.Fatal(err)
    }
    虽然 verbose 但是足够简单,规则统一
    
    所以在这里对 promise 的错误处理进行值的统一包装,以此来简化
    

    usage?

    import go from ‘@hufeng/go.js'
     
    function test() {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve('hello');
          //reject(new Error('error'))
        }, 200);
      });
    }
    (async () => {
      let { res, err } = await go(test());
      console.log(res); // hello
      console.log(err); //Error('error')
     
      ({ res, err } = await go(test()));
      console.log(res); // hello
      console.log(err); //Error('error')
    })();

    Keywords

    none

    Install

    npm i await-go

    DownloadsWeekly Downloads

    3

    Version

    1.0.0

    License

    MIT

    Unpacked Size

    2.47 kB

    Total Files

    3

    Last publish

    Collaborators

    • hufeng