1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
odoo.define('web.AjaxService', function (require) {
"use strict";
var AbstractService = require('web.AbstractService');
var ajax = require('web.ajax');
var core = require('web.core');
var session = require('web.session');
var AjaxService = AbstractService.extend({
/**
* @param {Object} libs - @see ajax.loadLibs
* @param {Object} [context] - @see ajax.loadLibs
* @param {Object} [tplRoute] - @see ajax.loadLibs
*/
loadLibs: function (libs, context, tplRoute) {
return ajax.loadLibs(libs, context, tplRoute);
},
rpc: function (route, args, options, target) {
var rpcPromise;
var promise = new Promise(function (resolve, reject) {
rpcPromise = session.rpc(route, args, options);
rpcPromise.then(function (result) {
if (!target.isDestroyed()) {
resolve(result);
}
}).guardedCatch(function (reason) {
if (!target.isDestroyed()) {
reject(reason);
}
});
});
promise.abort = rpcPromise.abort.bind(rpcPromise);
return promise;
},
});
core.serviceRegistry.add('ajax', AjaxService);
return AjaxService;
});
|