有没有更简洁的方式来编写这段代码?只有 .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(..);
这些东西被称为链式方法调用。
关于javascript - 如何在 "linked"方法调用中有条件语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34527858/