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')
})();

Readme

Keywords

none

Package Sidebar

Install

npm i await-go

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

2.47 kB

Total Files

3

Last publish

Collaborators

  • hufeng