打字稿异步等待不起作用

时间:2017-08-12 17:39:25

标签: node.js typescript async-await

我在Typescript中有以下异步函数,似乎await并没有像我期望的那样阻塞并产生所需的结果。

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;
}

"作物"不是在"内部setCroppedImgContent"之后立即打印,但很久以后。看起来像等待不起作用。

1 个答案:

答案 0 :(得分:2)

Nenad,你在函数中使用await的事实并不意味着它将同步执行。 await只会阻止执行一次调用。

如果您希望在console.log("After setCroppedImgContent");完成后执行getCroppedImgContent,则需要await其电话:

await getCroppedImgContent(origContent)
    .then(function (croppedBuffer) {
    image.content = croppedBuffer;
    console.log("Set image content");
});