コードへのコールバック内から便利 に使用することはできません。return
コールバック内で使用しreturnても、コードに値は返されません。値が与えられるfs.readFile()ように、コールバック自体を呼び出します。returnコードがそれを受け取るには、コールバックから取得した値fs.readFile()が必要returnですが、そうではありません。
そして、fs.readFile()非同期であるため、実際にはできません。コードは 2 つの異なる時点にまたがっています。
"現在"
var content;
var f = fs.readFile('./index.html', /* ... */);
f();
"未来"
/* ... */
function read(err, data) {
if (err) {
throw err;
}
content = data;
return console.log(content);
}
/* ... */
「現在」で「未来」の値を使用することはできません。つまり、その時点で「過去」の値を使用することはできません。
callbackこれは一般的に、 を使用するのではなく、パターンを継続することにつながりreturnます。あなたの「本当の」コードを取る:
var cheerioURLContent = function (url, callback) {
rest.get(url).on("complete", function (result) {
callback(cheerio.load(result));
});
};
cheerioURLContent('./index.html', function (t) {
console.log(t);
});