私の現在のコードは、サイズ変更が、私は持っていたコールバックではないと呼ばれるNode.jsの
Resizer.prototype.read = function(filepath, parsedUrl, fullDestinationPath){
something.then(function (somethingElse) {
// Not relevant for question
}).catch(function (err) {
console.error(err);
});
};
を呼び出し
Resizer.prototype.resize = function (filepath, parsedUrl, fullDestinationPath) {
this.read(filepath, parsedUrl, fullDestinationPath);
};
に走る
resizer.resize(filepath, parsedUrl, fullDestinationPath, function() {
return self.send(response, 200, {'Content-Type': mime.lookup(fullDestinationPath)}, fs.createReadStream(fullDestinationPath));
});
です this.read
の後に2番目のコードスニペットが完全に実行されていることを確認します。しかし、私の最初のスニペットに戻って、私のコールバックを呼び出すことはありません。私がコールバックを使用している理由は、ファイルが非常に小さい場合を除き、ファイルが完全に保存される前に送信が実行されるためです。self.send
はアフター.resize
と呼ばれる必要がありますコールバック。
構文エラーが問題であるか、何かにぶら下がっていると思っていましたが、検証されておらず、単純にコールバックが呼び出されていないと考えました。私は何らかの明白な間違いをしましたか?コールバックを呼び出すにはどうしたらいいですか?
私はHow to make a function wait until a callback has been called using node.jsのような質問/回答を読んで、それがどのように動作し、同じ方法でそれを実装したかを理解していますが、それは私のためには機能しません。これを読んでいただきありがとうございます。ロバーツの答えと問題を修正した後、私は、コールバックを削除したし、これにコードを変更し、私はカントーの代わりにコールバックの約束を使用しています:EDIT
スニペット1:
resizer
.resize(filepath, parsedUrl, fullDestinationPath)
.then(function() {
return self.send(response, 200, {'Content-Type': mime.lookup(fullDestinationPath)}, fs.createReadStream(fullDestinationPath));
});
スニペット2:
Resizer.prototype.resize = function (filepath, parsedUrl, fullDestinationPath) {
return this.read(filepath, parsedUrl, fullDestinationPath);
};
スニペット3:
Resizer.prototype.read = function(filepath, parsedUrl, fullDestinationPath){
return Jimp.read(filepath)
.then(function() {
return //tons of irrelevant code
})
.catch(function (err) {
console.error(err);
});
};
:
とします。 –
return self.send部分は呼び出されていない部分です。それをコールバックと呼んでいないのですか?また、console.logを使用して、私はそれがすべてのコードを実行していることを確認し、どこにでもぶら下がっていない、それはちょうどリターンに到達していません。自己は単なるvar self = thisです。コードの上部に、別の関数を置いたときにこの意味が変わってしまうからです。 –
'self.send()'は、あなたが 'resize'の引数として渡す匿名関数定義の中のコマンドですが、' resize'はそのパラメータリストでコールバックを受け付けません(filepath、 parsedUrlとfullDestinationPath) – OzW