-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrequest.js
39 lines (33 loc) · 1012 Bytes
/
request.js
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
var defaultConfig = require('./defaultConf')
var merge = require('./util/merge')
function Request(config) {
this.defaults = merge(defaultConfig, config)
}
Request.prototype.request = function(config) {
return new Promise(function(resolve, reject){
var config = merge({}, this.defaults, config)
config.before(config).then(function(config){
wx.request({
url: config.baseUrl + config.url,
data: config.data,
header: config.header,
success: function(res) {
//调用拦截器
var result = config.interceptor(res)
//处理promise或者同步的函数情况
if(Object.prototype.toString.call(result) === "[object Promise]") {
result.then(promiseRes=>{
resolve(promiseRes)
})
}else {
resolve(result)
}
},
fail: function(e) {
reject(e)
}
})
}.bind(this))
}.bind(this))
}
module.exports = Request