dareway-rui
Version:
62 lines (49 loc) • 1.83 kB
JavaScript
;
var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault');
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = createPromiseMiddleware;
var _slicedToArray2 = _interopRequireDefault(require('@babel/runtime/helpers/slicedToArray'));
var _objectSpread2 = _interopRequireDefault(require('@babel/runtime/helpers/objectSpread'));
var _constants = require('./constants');
function createPromiseMiddleware(app) {
return function() {
return function(next) {
return function(action) {
var type = action.type;
if (isEffect(type)) {
return new Promise(function(resolve, reject) {
next(
(0, _objectSpread2.default)(
{
__dva_resolve: resolve,
__dva_reject: reject
},
action
)
);
});
} else {
return next(action);
}
};
};
};
function isEffect(type) {
if (!type || typeof type !== 'string') return false;
var _type$split = type.split(_constants.NAMESPACE_SEP),
_type$split2 = (0, _slicedToArray2.default)(_type$split, 1),
namespace = _type$split2[0];
var model = app._models.filter(function(m) {
return m.namespace === namespace;
})[0];
if (model) {
if (model.effects && model.effects[type]) {
return true;
}
}
return false;
}
}
//@ sourceMappingURL=createPromiseMiddleware.js.map