如何在"链接"中使用条件语句方法调用?

时间:2015-12-30 10:40:43

标签: javascript

是否有更简洁的方法来编写此代码?它只是.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);
}

奖金问题:这些"链接"的正确术语是什么?方法调用?

1 个答案:

答案 0 :(得分:4)

您可以将这些方法调用的结果分配给变量,然后使用条件,不需要编写完整的链:

var img = gm(...)
            .gravity(..)
            .resize(..)
            .crop(..);

if (imageOptions.trim) {
    img.trim();
}

img.toBuffer(..);

这些东西被称为链式方法调用