37

async/await のサポートを node repl に追加したい

この問題に続いて: https://github.com/nodejs/node/issues/8382

私はこれを使用しようとしましたhttps://github.com/paulserraino/babel-replしかし、非同期待機サポートがありません

このスニペットを使用したい

const awaitMatcher = /^(?:\s*(?:(?:let|var|const)\s)?\s*([^=]+)=\s*|^\s*)(await\s[\s\S]*)/;
const asyncWrapper = (code, binder) => {
  let assign = binder ? `root.${binder} = ` : '';
  return `(function(){ async function _wrap() { return ${assign}${code} } return _wrap();})()`;
};

// match & transform
const match = input.match(awaitMatcher);
if(match) {
  input = `${asyncWrapper(match[2], match[1])}`;
}

このスニペットをノード repl のカスタム eval に追加するにはどうすればよいですか?

ノード repl の例:

> const user = await User.findOne();
4

3 に答える 3

2

アイデアは、コマンドを前処理し、非同期関数の外側に await 構文がある場合は非同期関数でラップすることです

このhttps://gist.github.com/princejwesley/a66d514d86ea174270210561c44b71baが最終的な解決策です

于 2017-01-06T09:42:14.723 に答える