Open otakustay opened 9 years ago
统一使用规则,在一个项目/包中,要么全用,要么全不用,混用只会让理解更难
如果选择全用,那么:
then
await
catch
try/catch
Promise
async
@return
return await xxx();
return
new Promise
特殊情况:
abort()
XHR
这一块我要改一下,经过实践,我现在的思路是能不用就不用,没必要所有返回Promise的都标上async
统一使用规则,在一个项目/包中,要么全用,要么全不用,混用只会让理解更难
如果选择全用,那么:
then
的调用,都是await
,特殊情况看后文catch
的调用,都是try/catch
,特殊情况看后文Promise
的函数统一标上async
,此时jsdoc上的@return
可以直接写resolve后的类型,这样把异步函数难写jsdoc的问题也解决了return await xxx();
,没任何意义,await
只在函数流程的中间用,表示不要立刻执行下一行代码,而return
是最后一行了new Promise
的形式,比如把一些事件转成Promise
,所以不要认为async
可以让你看不到Promise
特殊情况:
Promise
,比如一个带有abort()
方法的XHR
对象,那么你不能使用async
函数Promise
做后续逻辑处理但是返回的依旧是这个Promise
本身而不是then
衍生出来的新的Promise
,那么就要用到then
和catch