私は、レス、スタイラスなどを前処理するライブラリに取り組んでいます。プリプロセッサは、本質的に非同期と同期の両方にすることができます。結果はビルド段階でのみ使用されるため、ここでブロッキング コードを記述しても問題ありません。
ほとんどのプリプロセッサは同期であり、ライブラリはチェーンの同期関数を想定しているため、プリプロセッサ関数からの同期と非同期の両方の結果を処理できる同期関数内にプリプロセッサ関数をラップすることが何とか可能かどうか疑問に思っていました関数?
基本的に、どういうわけか、このようなことをすることは可能でしょうか?
syncFn = function(contents) {
var res = syncOrAsyncFn(contents, function(err, contents) {
res = contents
})
// .. do some magic here that waits for the results of syncOrAsyncFn
return res; // Return the result from a function that could be async or sync
}