{
    "componentChunkName": "component---src-templates-doc-page-js",
    "path": "/docs/ru/JS_API/built_in_services/reactions/newSession/",
    "result": {"data":{"site":{"siteMetadata":{"title":"Gatsby-doc-engine"}},"markdownRemark":{"id":"b7ee413e-15f3-5c7c-9572-55388ea655cb","excerpt":"Метод предназначен для явного создания новой сессии из скрипта. Параметры  — стартовое сообщение, будет передано сценарию сразу после активации сессии. Если…","html":"<h1><code class=\"language-text\">function newSession(arg)</code></h1>\n<hr>\n<p>Метод предназначен для явного создания новой сессии из скрипта.</p>\n</br>\n<h4>Параметры</h4>\n<ul>\n<li><code class=\"language-text\">message</code> — стартовое сообщение, будет передано сценарию сразу после активации сессии. Если параметр не задан, будут выполнены только реакции корневой темы.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\">$reactions<span class=\"token punctuation\">.</span><span class=\"token function\">newSession</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span><span class=\"token literal-property property\">message</span><span class=\"token operator\">:</span> $context<span class=\"token punctuation\">.</span>request<span class=\"token punctuation\">.</span>query<span class=\"token punctuation\">,</span> <span class=\"token literal-property property\">data</span><span class=\"token operator\">:</span> $context<span class=\"token punctuation\">.</span>request<span class=\"token punctuation\">.</span>data<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n</br>\n<ul>\n<li><code class=\"language-text\">session</code> — данные для новой сессии. По умолчанию — пустой объект.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">{ timezone: \"GMT+3\" }</code></pre></div>\n</br>\n<ul>\n<li><code class=\"language-text\">client</code> — данные клиента. Вы можете модифицировать в новой сессии текущие данные или сбросить их.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">theme:</span> /\n    <span class=\"token keyword\">init:</span>\n        bind(\"postProcess\", function($context) {\n            if ($context.session.startNewSession) {\n                $reactions.newSession({message: 'newSessionMessage', client: {}});\n            }\n        });\n    <span class=\"token keyword\">state:</span>\n        <span class=\"token storageType\">q!:</span> test\n        <span class=\"token variableParameter\">script:</span>\n            $session.startNewSession = true;\n            $context.client.clientCustomData = 'testClientQuery';\n        <span class=\"token variableParameter\">a:</span> Test answer\n    <span class=\"token keyword\">state:</span>\n        <span class=\"token storageType\">q!:</span> newSessionMessage\n        <span class=\"token variableParameter\">a:</span> Message from new session request <span class=\"token constantCharacter\">{{ $client.clientCustomData }}</span></code></pre></div>\n</br>\n<ul>\n<li><code class=\"language-text\">request</code> — исходный запрос можно модифицировать в новой сессии. Например, изменить <code class=\"language-text\">event</code> или <code class=\"language-text\">query</code>: <code class=\"language-text\">{event: 'new event'}</code>.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">theme:</span> /\n    <span class=\"token keyword\">init:</span>\n        bind(\"postProcess\", function($context) {\n            if ($context.session.startNewSession) {\n                var $request = $context.request;\n                $request.event = 'newSessionEvent';\n                $reactions.newSession({request: $request});\n            }\n        });\n    <span class=\"token keyword\">state:</span>\n        <span class=\"token storageType\">q!:</span> test\n        <span class=\"token variableParameter\">script:</span>\n            $session.startNewSession = true;\n        <span class=\"token variableParameter\">a:</span> Test answer\n    <span class=\"token keyword\">state:</span>\n        <span class=\"token storageType\">event:</span> newSessionEvent\n        <span class=\"token variableParameter\">script:</span>\n        <span class=\"token variableParameter\">a:</span> Event from new session request</code></pre></div>\n</br>\n<ul>\n<li><code class=\"language-text\">data</code> — данные для новой сессии, например, данные запроса клиента <a href=\"/1.10.3/docs/ru/JS_API/variables/request\"><code class=\"language-text\">$request.data</code></a>. По умолчанию — пустой объект.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\">$reactions<span class=\"token punctuation\">.</span><span class=\"token function\">newSession</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span><span class=\"token literal-property property\">message</span><span class=\"token operator\">:</span> $context<span class=\"token punctuation\">.</span>request<span class=\"token punctuation\">.</span>query<span class=\"token punctuation\">,</span> <span class=\"token literal-property property\">data</span><span class=\"token operator\">:</span> $context<span class=\"token punctuation\">.</span>request<span class=\"token punctuation\">.</span>data<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n</br>\n<h4>Примеры использования</h4>\n<div class=\"gatsby-highlight\" data-language=\"js\"><pre class=\"language-js\"><code class=\"language-js\"><span class=\"token literal-property property\">script</span><span class=\"token operator\">:</span>\n        <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>$context<span class=\"token punctuation\">.</span>testContext <span class=\"token operator\">&amp;&amp;</span> <span class=\"token operator\">!</span>$request<span class=\"token punctuation\">.</span>data<span class=\"token punctuation\">.</span>newSession<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>$parseTree<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n                 $reactions<span class=\"token punctuation\">.</span><span class=\"token function\">newSession</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span><span class=\"token literal-property property\">message</span><span class=\"token operator\">:</span> $parseTree<span class=\"token punctuation\">.</span>text<span class=\"token punctuation\">,</span> <span class=\"token literal-property property\">data</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token literal-property property\">newSession</span><span class=\"token operator\">:</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n                <span class=\"token punctuation\">}</span> \n            <span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n                $reactions<span class=\"token punctuation\">.</span><span class=\"token function\">newSession</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span><span class=\"token literal-property property\">message</span><span class=\"token operator\">:</span> <span class=\"token string\">\"/start\"</span><span class=\"token punctuation\">,</span> <span class=\"token literal-property property\">data</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token literal-property property\">newSession</span><span class=\"token operator\">:</span><span class=\"token boolean\">true</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n                <span class=\"token punctuation\">}</span>\n            <span class=\"token punctuation\">}</span></code></pre></div>\n<div class=\"gatsby-highlight\" data-language=\"sc\"><pre class=\"language-sc\"><code class=\"language-sc\"><span class=\"token keyword\">state:</span> reset\n        <span class=\"token storageType\">q!:</span> reset\n        <span class=\"token variableParameter\">script:</span>\n            $reactions.newSession({message: \"/start\", data: $request.data});</code></pre></div>\n<p class='warn'><a href=/1.10.3/docs/ru/JS_API/session_lifetime_control  >Подробнее о сессиях в платформе JAICP</a></p>","frontmatter":{"title":"","description":null},"headings":[{"value":"<code class=\"language-text\">function newSession(arg)</code>"}]}},"pageContext":{"slug":"/docs/ru/JS_API/built_in_services/reactions/newSession/","previous":{"fields":{"slug":"/docs/ru/JS_API/built_in_services/reactions/random/"},"frontmatter":{"title":"","description":null}},"next":{"fields":{"slug":"/docs/ru/JS_API/built_in_services/reactions/location/"},"frontmatter":{"title":"","description":null}}}},
    "staticQueryHashes": ["1209419333"]}