function vibratePattern()

in src/windows/VibrationProxy.js [136:171]


function vibratePattern (patternArr, shouldRepeat, fail, patternCycle) {
    return patternArr.reduce(function (previousValue, currentValue, index) {
        if (index % 2 === 0) {
            return previousValue.then(function () {
                module.exports.vibrate(
                    function () {},
                    function (err) {
                        console.error(err);
                        if (fail) {
                            fail(err);
                        }
                    },
                    [currentValue]
                );

                if (index === patternArr.length - 1 && shouldRepeat) {
                    return WinJS.Promise.timeout(currentValue).then(function () {
                        return vibratePattern(patternCycle, true, fail, patternCycle);
                    });
                } else {
                    return WinJS.Promise.timeout(currentValue);
                }
            });
        } else {
            return previousValue.then(function () {
                if (index === patternArr.length - 1 && shouldRepeat) {
                    return WinJS.Promise.timeout(currentValue).then(function () {
                        return vibratePattern(patternCycle, true, fail, patternCycle);
                    });
                } else {
                    return WinJS.Promise.timeout(currentValue);
                }
            });
        }
    }, WinJS.Promise.as());
}