是否有更简洁的方法来编写此代码?它只是.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);
}
奖金问题:这些"链接"的正确术语是什么?方法调用?
答案 0 :(得分:4)
您可以将这些方法调用的结果分配给变量,然后使用条件,不需要编写完整的链:
var img = gm(...)
.gravity(..)
.resize(..)
.crop(..);
if (imageOptions.trim) {
img.trim();
}
img.toBuffer(..);
这些东西被称为链式方法调用。