Jshint: рдПрд╕рд┐рдВрдХреНрд╕ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдЬреБрд▓ре░ 2015  ┬╖  23рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: jshint/jshint

рдкреНрд░рд╕реНрддрд╛рд╡: https://github.com/tc39/ecmascript-asyncawait

30 рдЬреБрд▓рд╛рдИ 2015 рдХреЛ рдЪрд░рдг 2 рдореЗрдВ рдЙрдиреНрдирдд https://github.com/tc39/ecma262

gh-реиремрежрез . рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдареАрдХ рд╣реИ, рддреЛ рдЕрдм рд╡рд╣ рдиреЛрдб 8 рд▓рд╛рдЗрд╡ рд╣реИред Async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдЬрд▓реНрдж рд╣реА jsHint рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛?

рдзрдиреНрдпрд╡рд╛рдж,

рд╕рднреА 23 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

2077 рдХрд╛рдо рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдореИрдВрдиреЗ #2601 рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдЬрдЧрд╣ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

async/wait рдЕрдм рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ , ES2017 рд╡рд┐рдирд┐рд░реНрджреЗрд╢

рд╢рд╛рдпрдж рдпрд╣ #2077 рдХреЛ рдзреВрд▓ рдЪрдЯрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ?

рдареАрдХ рд╣реИ, рддреЛ рдЕрдм рд╡рд╣ рдиреЛрдб 8 рд▓рд╛рдЗрд╡ рд╣реИред Async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдЬрд▓реНрдж рд╣реА jsHint рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛?

рдзрдиреНрдпрд╡рд╛рдж,

рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдЫреЛрдбрд╝ рджреВрдБрдЧрд╛: http://eslint.org/

рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдЫреЛрдбрд╝ рджреВрдБрдЧрд╛: https://github.com/eslint/eslint#what -about-experimental-features

рдЖрдкрдиреЗ рдЕрднреА-рдЕрднреА jshint рдореЗрдВ рдореЗрд░реА рджрд┐рд▓рдЪрд╕реНрдкреА рдЦреЛ рджреА рд╣реИред рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдзреАрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

Node.js async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЖрдзреБрдирд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЬреЗрдПрд╕рд╣рд┐рдВрдЯ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╖рдп 2 рд╕рд╛рд▓ рдкреБрд░рд╛рдирд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж рдЬреЗрдПрд╕рд╣рд┐рдВрдЯред рдЬрдм рддрдХ рдпрд╣ рдЪрд▓рд╛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рдерд╛ред

ESLint рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдЯреАрдо рдХреЛ рдирдорд╕реНрддреЗ,

async рдпреБрдХреНрддрд┐ рдЪрд░рдг 4 рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдИ рд╣реИ, рд╣рдо рдХрдм рд╕рдорд░реНрдерди рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЖрд░рдЖрдИрдкреА рдЬрд╢рд┐рдВрдЯ

рдпрд╣ рдПрдХ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рд╣реИред рдХреГрдкрдпрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдкреИрдЪ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВред

рдореИрдВ рдЬрд╢рд┐рдВрдЯ рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдПрд╕реНрд▓рд┐рдВрдЯ рдореЗрдВ рдЬрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рд╣реИред рдИрд╕реАрдПрдордП рдХреЗ рдирдП рд░рд┐рд▓реАрдЬ рдЪрдХреНрд░ рдХрд╛ рд▓рдХреНрд╖реНрдп - рдФрд░ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг - рд▓реЛрдЧреЛрдВ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдирд╡реАрдирддрдо-рдорд╣рд╛рдирддрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЬрд▓реНрджреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реИред Async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдЪрд░рдг 4 рдкрд░ рд╣реИ (рдФрд░ рдиреЛрдб рдФрд░ рдХрдИ рдореБрдЦреНрдпрдзрд╛рд░рд╛ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдмреЗрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рд▓реЗрдХрд┐рди jshint рдиреЗ рдЕрднреА рддрдХ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рд╣реИред

рдореИрдВ рдкреНрд░рддрд┐рджрд┐рди jshint рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рдРрд╕рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдЬреЛ jslint рд╕реЗ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╣реЛред рдЕрдм рдореБрдЭреЗ рдирд╡реАрдирддрдо ES рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рдЕрдк-рдЯреВ-рдбреЗрдЯ рдЯреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╢реБрднрдХрд╛рдордирд╛рдПрдВред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реИрдХрдбрд╝реЛрдВ рд╣рдЬрд╛рд░реЛрдВ рдХреЛрдб рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ рдЬреЛ jshint рдХреЗ рд╕рд╛рде рдорд╛рдиреНрдп рд╣реИрдВред рд╕рднреА рдХреЛрдб рдкреНрд░реЙрдорд┐рд╕ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред 6 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рд╣рдордиреЗ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ (рд╡рд╛рджреЗ рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдлрд╝рдВрдХреНрд╢рди рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ: рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рдкрдардиреАрдп/рд░рдЦрд░рдЦрд╛рд╡ рдпреЛрдЧреНрдп рдореЗрдВ рдмрджрд▓ рджреЗрдЧреА)ред
рд╕рдорд╕реНрдпрд╛ рдереА, OMG, jshintред рдПрд╕реНрд▓рд┐рдВрдЯ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╣рдордиреЗ рдЕрднреА рдХреБрдЫ рд╕рдордп JSHINT рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИред

рдЕрдЪреНрдЫреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдкрд┐рдЫрд▓реЗ 3 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╣рдорд╛рд░реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдХреЛрдб рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рд╣рдо рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рд╣рдо рдЕрдЧрд▓реА рдЫреЛрдЯреА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рднреНрд░рдо рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП рдореИрдВ рдЕрдВрдХ рд╢реАрд░реНрд╖рдХ рд╕реЗ "рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ" рд╢рдмреНрдж рд╣рдЯрд╛ рджреВрдВрдЧрд╛ред

рдЗрд╕рдХреЗ рд▓рд┐рдП +1!

рд╣рдо @jsfiddle рдореЗрдВ JSHint рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдмрдврд╝рд┐рдпрд╛ рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд╣рдореЗрдВ async рдФрд░ await рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓рд┐рдВрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рд┐рдХрд╛рдпрддреЗрдВ рдорд┐рд▓реАрдВред

@jugglinmike рдЪреВрдВрдХрд┐ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА 3 рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдХреА рдЧрдИ рдереА, рдХреНрдпрд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╣реА рдХрднреА рднреА рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛?

async/рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдорд░реНрдерди рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреМрди рд╕реА рд╣реИ?

рдЕрдЪреНрдЫрд╛ рд╕рд╡рд╛рд▓, @colxi рдФрд░ @oskarkrawczykред рдореИрдВ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдПрд╕рд┐рдВрдХреНрд╕ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдорд░реНрдерди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рднрдВрдбрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп-рдкреНрд░рдЧрддрд┐ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдЦреЛрд▓рд╛ рд╣реИ, рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдХрд┐ рд╣рдо рдХрд╣рд╛рдВ рд╣реИрдВ: gh-3272

async/рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рд╢реБрднрдХрд╛рдордирд╛рдПрдБ, рдпрд╣ рдЗрд╕ рднрдпрд╛рдирдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ

рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдЕрдирд╛рдо рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рднреА рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ

Expected '(' and instead saw '{'.

+3 рд╕рд╛рд▓ рд╣реЛ рдЧрдП !!

рд▓рдЧрддрд╛ рд╣реИ рд╣рдордиреЗ рдХрд╛рдлреА рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛ред рдЕрд▓рд╡рд┐рджрд╛ рдЬреЗрдПрд╕рд╣рд┐рдВрдЯред рд╡рд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдордп рдерд╛ред

async/await рдЕрдм 2.10.1 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред рдмрд╕ рдЕрдкрдиреЗ рдЕрджреНрдпрддрди .jshintrc рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "esversion": 9 ред

CHANGELOG.md рджреЗрдЦреЗрдВред

@nodesocket esversion: 8 рдзреНрд╡рдЬ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ async рдФрд░ await рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреИрд╕рд╛ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рд▓реЙрдЧ рдмрддрд╛рддрд╛ рд╣реИ, рд╡рд╣рд╛рдВ _is_ рдПрдХ esversion: 9 рдзреНрд╡рдЬ рд╣реИ)ред

рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ; рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдРрд╕рд╛ рдХрд┐рдпрд╛ред

@nodesocket рдиреЗ рдЗрд╕реЗ рд╕рд╣реА

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ghost picture ghost  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

strugee picture strugee  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Daniel-Hug picture Daniel-Hug  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

arian picture arian  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

stefanuddenberg picture stefanuddenberg  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ