UNPKG

vtils

Version:

一个面向业务的 JavaScript/TypeScript 实用程序库。

75 lines (71 loc) 1.76 kB
"use strict"; exports.__esModule = true; exports.createSubmit = createSubmit; var _run = require("./run"); var _wait = require("./wait"); var idCounter = 1; /** * 创建提交类行为。 * * @param options 选项 */ /** * 创建提交类行为。 * * @param options 选项 */ /** * 创建提交类行为。 * * @param options 选项 */ function createSubmit(options) { var getPayload = function getPayload(id) { return { start: function start(message) { return (0, _run.run)(function () { return options.start(message, id); }); }, fail: function fail(message, duration) { if (duration === void 0) { duration = 1500; } return (0, _run.run)(function () { return options.fail(message, duration, id); }).then(function () { return (0, _wait.wait)(duration); }); }, success: function success(message, duration) { if (duration === void 0) { duration = 1500; } return (0, _run.run)(function () { return options.success(message, duration, id); }).then(function () { return (0, _wait.wait)(duration); }); } }; }; var res = function res(action) { var id = idCounter++; return action(getPayload(id)).then(function (res) { return (0, _run.run)(function () { return options.complete(id); }).then(function () { return res; }); }).catch(function (error) { if (options.throw) { options.throw(error, id); } return Promise.reject(error); }); }; var globalAction = getPayload(0); res.success = globalAction.success; res.fail = globalAction.fail; return res; }