Перехват ответа в додзе на чтение куки - PullRequest
0 голосов
/ 16 января 2019

У меня есть фильтр на стороне сервера, который добавляет cookie myCookie к каждому ответу.

Я перехватываю ответ в виджете додзе, как показано ниже:

define("mySolution/ServerCookieWidget", [
"dojo/request/notify",
"dojo/cookie"
], function (notify, cookie) {
notify("load", function(response) {
     var cookieRead = cookie("myCookie");
     console.log('Cookie read is: ', cookieRead);
    });
});

Я хочу использовать прочитанное значение, чтобы выполнить некоторые вычисления на стороне клиента.

Как поделиться значением файла cookie для чтения с другим виджетом?

Я новичок в додзё, поэтому не знаю синтаксиса и не могу найти ни одного примера для моего сценария.

1 Ответ

0 голосов
/ 16 января 2019

В зависимости от остальной вашей архитектуры, вы можете использовать модуль pubsub Dojo dojo/topic:

https://dojotoolkit.org/reference-guide/1.10/dojo/topic.html

Например, изменив код на:

define("mySolution/ServerCookieWidget", [
    "dojo/request/notify",
    "dojo/cookie",
    "dojo/topic"
], function (notify, cookie, topic) {
    notify("load", function(response) {
        var cookieRead = cookie("myCookie");
        // console.log('Cookie read is: ', cookieRead);
        topic.publish("*/cookie/value", cookieRead);
    });
});

Вы можете создавать виджеты, которые подписываются на тему:

define("mySolution/SomeOtherWidget", [
    "dojo/_base/declare",
    "dojo/topic"
], function (declare, topic) {
    var OtherWidget = declare(null, {
        constructor: function (opt) {
           this.topicHandle = topic.subscribe("*/cookie/value", this._handleCookieValue.bind(this));
        },
        _handleCookieValue: function (cookieVal) {
            console.log("Cookie value is:", cookeVal);
        }
    });

    return OtherWidget;
});
...