AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.05.2017, 19:31   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
вот состав библиотек в <head> в существующем клиенте аксапты и в cloudPOS
больше всего меня удивляет полифил для промисов...
Миниатюры
Нажмите на изображение для увеличения
Название: ax7-head.PNG
Просмотров: 421
Размер:	109.3 Кб
ID:	11415   Нажмите на изображение для увеличения
Название: pos-head.PNG
Просмотров: 391
Размер:	82.9 Кб
ID:	11416  

__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 24.05.2017 в 19:34.
Старый 24.05.2017, 20:17   #2  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от mazzy Посмотреть сообщение
клиент - и кросс-платформенный, и кросс-браузерный.
правда оформлен в стиле виндовых modern apps.
Шутка удалась

Тоску понимаю и поддерживаю. Выход вижу но туда AX7 не пролезет, она сама стена. Хотя можно анализировать архитектуру AX7 и что-где-чем можно заменить.
Но связанными руками да в темной комнате с поттергейстом?.

Цитата:
Сообщение от mazzy Посмотреть сообщение
больше всего меня удивляет полифил для промисов...
Я думаю это из-за IE.

A Promise object represents an operation that is not completed yet, but is expected to complete in the future.

Internet Explorer 11 doesn’t implement native promises. For browsers that do not implement native promises, you must include a separate library to provide a polyfill. A polyfill is code that provides capabilities not provided natively by a browser. There are several polyfills or libraries which will allow Internet Explorer 11 to have promises: es6-promise, q.js, and bluebird.

https://msdn.microsoft.com/en-us/lib...romiseFunction
Старый 24.05.2017, 21:18   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Internet Explorer 11 doesn’t implement native promises.
именно это и удивляет.
под хромом, кстати, не работает из коробки. хотя обещали. может будет еще.

понятно, что промисы удобная штука...
но раз уж взялись использовать экспериментальные технологии, то взяли бы сразу async/await тайпскриптовский...

хотя само наличие экспериментального полифила в ФИНАНСОВОЙ программе... да еще в браузере...
понятно, что в браузере должно работать в режиме киоска... но, блииин...

слишком это сложно.
собственно поэтому не считаю ритейл образцом для подражания.
собственно отсюда и вопрос.
__________________
полезное на axForum, github, vk, coub.
Старый 24.05.2017, 21:47   #4  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от mazzy Посмотреть сообщение
слишком это сложно.
...
собственно отсюда и вопрос.
Ответ в "ES6 Promise polyfill".

То что вы думали что мы обещали - так это мы о другом говорили.
A promises callback cannot return that same promise.

Оставьте это программирование обещающей расе.
You must pass an array to Promise race

Даже не знаем что вам еще обещать. Попробуйте что-то более современное.
Failed to construct Promise. Please use the new.

Код:
if(typeof Promise !== "undefined" && Promise.toString().indexOf("[native code]") !== -1)
{
    (function(t){function z(){for(var a=0;a<g.length;a++)g[a][0](g[a][1]);g=[];m=!1}function n(a,b){g.push([a,b]);m||(m=!0,A(z,0))}function B(a,b){function c(a){p(b,a)}function h(a){k(b,a)}try{a(c,h)}catch(d){h(d)}}function u(a){var b=a.owner,c=b.state_,b=b.data_,h=a[c];a=a.then;if("function"===typeof h){c=l;try{b=h(b)}catch(d){k(a,d)}}v(a,b)||(c===l&&p(a,b),c===q&&k(a,b))}function v(a,b){var c;try{if(a===b)throw new TypeError("A promises callback cannot return that same promise.");if(b&&("function"===
typeof b||"object"===typeof b)){var h=b.then;if("function"===typeof h)return h.call(b,function(d){c||(c=!0,b!==d?p(a,d):w(a,d))},function(b){c||(c=!0,k(a,b))}),!0}}catch(d){return c||k(a,d),!0}return!1}function p(a,b){a!==b&&v(a,b)||w(a,b)}function w(a,b){a.state_===r&&(a.state_=x,a.data_=b,n(C,a))}function k(a,b){a.state_===r&&(a.state_=x,a.data_=b,n(D,a))}function y(a){var b=a.then_;a.then_=void 0;for(a=0;a<b.length;a++)u(b[a])}function C(a){a.state_=l;y(a)}function D(a){a.state_=q;y(a)}function e(a){if("function"!==
typeof a)throw new TypeError("Promise constructor takes a function argument");if(!1===this instanceof e)throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");this.then_=[];B(a,this)}var f=t.Promise,s=f&&"resolve"in f&&"reject"in f&&"all"in f&&"race"in f&&function(){var a;new f(function(b){a=b});return"function"===typeof a}();"undefined"!==typeof exports&&exports?(exports.Promise=s?f:e,exports.Polyfill=e):"function"==
typeof define&&define.amd?define(function(){return s?f:e}):s||(t.Promise=e);var r="pending",x="sealed",l="fulfilled",q="rejected",E=function(){},A="undefined"!==typeof setImmediate?setImmediate:setTimeout,g=[],m;e.prototype={constructor:e,state_:r,then_:null,data_:void 0,then:function(a,b){var c={owner:this,then:new this.constructor(E),fulfilled:a,rejected:b};this.state_===l||this.state_===q?n(u,c):this.then_.push(c);return c.then},"catch":function(a){return this.then(null,a)}};e.all=function(a){if("[object Array]"!==
Object.prototype.toString.call(a))throw new TypeError("You must pass an array to Promise.all().");return new this(function(b,c){function h(a){e++;return function(c){d[a]=c;--e||b(d)}}for(var d=[],e=0,f=0,g;f<a.length;f++)(g=a[f])&&"function"===typeof g.then?g.then(h(f),c):d[f]=g;e||b(d)})};e.race=function(a){if("[object Array]"!==Object.prototype.toString.call(a))throw new TypeError("You must pass an array to Promise.race().");return new this(function(b,c){for(var e=0,d;e<a.length;e++)(d=a[e])&&"function"===
typeof d.then?d.then(b,c):b(d)})};e.resolve=function(a){return a&&"object"===typeof a&&a.constructor===this?a:new this(function(b){b(a)})};e.reject=function(a){return new this(function(b,c){c(a)})}})("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this);

}
https://community.dynamics.com/enter...r-and-promises
Теги
ax2009, ax2012, lamp, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
stoneridgesoftware: Working with the OData Endpoint in Dynamics 365 for Operations Blog bot DAX Blogs 0 12.01.2017 17:11
AIF: OData Query Service Blog bot DAX Blogs 0 24.08.2011 09:11
axforum blogs: Трудности перехода: опыт переноса модификаций с AX 3.0 SP5 EE на AX 2009 SP1 RU5 EE Blog bot DAX Blogs 0 19.07.2011 03:14
DAX2009 workflows - отдельный сервер для каждого приложения nebraska DAX: Администрирование 1 01.10.2010 09:37
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:57.