interceptCallMiddleware(createMiddleware) {
		return next => {
			let result = null;
			const call = createMiddleware((...args) => (result = next(...args)));
			return (...args) => {
				const promise = call(...args);
				if (result) promise.ctx = result.ctx;
				return promise;
			};
		};
	}
It is necessary to keep the context of the call when using call middleware.