从 CoffeeScript 到 NodeJS
CoffeeScript to NodeJS
我目前正在尝试将一些旧的 CoffeeScript 代码移植到(旧项目)到本机 NodeJS;我很难理解这到底在做什么?或 Node 中的等效项?
builder.macro_extensions = [
'iced'
'nsi'
'txt'
]
await exec """
find #{temp} | grep #{(_.map @macro_extensions, (x) -> "-e '\.#{x}'").join ' '}
""", {silent:on}, defer e,r
if e then return cb e
如果有人能给我指出正确的方向,那就太完美了!
假设exec
returns一个promise,代码将2个参数传递给exec
函数,等待返回的promise被履行,并设置变量r
到解析值。
如果出现任何问题(即承诺被拒绝),它会将变量 e
设置为该承诺的拒绝原因。
该代码的 JS 等价物是:
builder.macro_extensions = ['iced', 'nsi', 'txt'];
const grepArgs = _.map(
this.macro_extensions, // or maybe builder.macro_extensions
x => ` -e '\.${x}'`,
).join(''); // -e '\.iced' -e '\.nsi' -e '\.txt'
let r;
try {
r = await exec(`find ${temp} | grep ${grepArgs}`, {silent: on});
} catch (e) {
return cb(e);
}
// ...
我目前正在尝试将一些旧的 CoffeeScript 代码移植到(旧项目)到本机 NodeJS;我很难理解这到底在做什么?或 Node 中的等效项?
builder.macro_extensions = [
'iced'
'nsi'
'txt'
]
await exec """
find #{temp} | grep #{(_.map @macro_extensions, (x) -> "-e '\.#{x}'").join ' '}
""", {silent:on}, defer e,r
if e then return cb e
如果有人能给我指出正确的方向,那就太完美了!
假设exec
returns一个promise,代码将2个参数传递给exec
函数,等待返回的promise被履行,并设置变量r
到解析值。
如果出现任何问题(即承诺被拒绝),它会将变量 e
设置为该承诺的拒绝原因。
该代码的 JS 等价物是:
builder.macro_extensions = ['iced', 'nsi', 'txt'];
const grepArgs = _.map(
this.macro_extensions, // or maybe builder.macro_extensions
x => ` -e '\.${x}'`,
).join(''); // -e '\.iced' -e '\.nsi' -e '\.txt'
let r;
try {
r = await exec(`find ${temp} | grep ${grepArgs}`, {silent: on});
} catch (e) {
return cb(e);
}
// ...