Typescriptに以下の非同期関数があります。予想通りにawaitがブロックして必要な結果を得ているようです。Typescript asyncが動作しなくなるのを待つ
async function getCroppedImgContent(origImgBuffer: Buffer) {
console.log("Inside setCroppedImgContent");
let croppedBuffer = await sharp(origImgBuffer)
.resize(4000, 4000)
.max()
.toBuffer();
console.log("After crop");
return croppedBuffer;
}
"After crop"は、 "Inside setCroppedImgContent"の直後には表示されませんが、後で多く表示されます。待っているように見えますが動作していません。
問題はどのようなものです:
あなたは
getCroppedImgContent
後に実行されるconsole.log("After setCroppedImgContent");
をしたい場合は、あなたがawait
への呼び出しを必要と完了していますか? – Amit'await'はあなたが約束を待っているときにのみ本当に便利なので、' sharp()。resize()。max()。toBuffer() 'は約束を返します。 – jfriend00
await行で実行がブロックされず、結果が後で返されます。 – Nenad