有没有更干净的方式编写此代码?只是.trim()
语句有所不同。
if (imageOptions.trim) {
// Trim
gm(imageBuffer, 'image.' + imageOptions.imageFormat)
.gravity(imageOptions.gravity)
.resize(imageOptions.imageWidth, imageOptions.imageHeight, '^')
.crop(imageOptions.imageWidth, imageOptions.imageHeight)
.trim()
.toBuffer(imageOptions.imageFormat.toUpperCase(), callback);
}
else {
// No trim
gm(imageBuffer, 'image.' + imageOptions.imageFormat)
.gravity(imageOptions.gravity)
.resize(imageOptions.imageWidth, imageOptions.imageHeight, '^')
.crop(imageOptions.imageWidth, imageOptions.imageHeight)
.toBuffer(imageOptions.imageFormat.toUpperCase(), callback);
}
额外的问题:这些“链接”方法调用的正确术语是什么?
最佳答案
您可以将这些方法调用的结果分配给变量,然后有条件,无需完整地编写整个链:
var img = gm(...)
.gravity(..)
.resize(..)
.crop(..);
if (imageOptions.trim) {
img.trim();
}
img.toBuffer(..);
这些事情称为链接方法调用。