【发布时间】:2017-08-28 05:46:26
【问题描述】:
在微信小程序平台(基于微信应用程序的javascript +原生混合)上开发性能评估工具,我正在尝试将代码注入其原型,例如wx.request函数。
这就是你将如何使用wx.request 函数:
wx.request({
url: 'test.php',
data: {
x: '' ,
y: ''
},
header: {
'content-type': 'application/json'
},
success: function(res) {
console.log(res.data)
}
})
所以为了知道请求花费了多长时间而无需手动编写添加所有锚点,我尝试通过以下方式注入代码:
var owxrequest = wx.request
wx.request = function() {
console.log('test', Date.now())
return owxrequest.apply(owxrequest, arguments)
}
这失败了,我收到了Cannot set property "prop" of #<Object> which has only a getter 错误。
所以我意识到对象的定义必须类似于:
wx = {
request: get function(){
...
}
...
}
所以我尝试了:
var owxrequest = wx.request
Object.defineProperty(wx, 'request', {
get: function() {
console.log('test', Date.now())
return owxrequest.apply(owxrequest, arguments)
}
})
此操作失败并出现错误 (request: fail parameter error: parameter.url should be String instead of Undefined)。然后我尝试了:
var owxrequest = wx.request
Object.defineProperty(wx, 'request', {
set: function() {
console.log('test', Date.now())
return owxrequest.apply(owxrequest, arguments)
}
})
这不会引发错误,但在调用wx.request()时也没有效果...
【问题讨论】:
标签: javascript wechat