小程序请求promise化
时间: 2023-08-09 16:04:53 浏览: 50
将小程序请求封装成 Promise 可以方便地使用 async/await 语法进行异步调用,代码如下:
```javascript
function request(url, method, data) {
return new Promise((resolve, reject) => {
wx.request({
url,
method,
data,
success: res => {
resolve(res.data)
},
fail: err => {
reject(err)
}
})
})
}
```
使用方法:
```javascript
async function getData() {
try {
const data = await request('https://example.com/api', 'GET', { page: 1 })
console.log(data)
} catch (err) {
console.log(err)
}
}
```
这里的 request 函数返回一个 Promise 对象,在异步调用时使用 async/await 语法即可,如果请求成功,则 Promise 对象 resolve 返回响应数据,如果请求失败,则 Promise 对象 reject 返回错误信息。
相关问题
小程序请求如何promise化
小程序中的请求可以使用Promise进行封装,使其更加灵活易用。下面是一个简单的例子:
```javascript
function request(url, data) {
return new Promise((resolve, reject) => {
wx.request({
url: url,
data: data,
header: {
'content-type': 'application/json'
},
success: function(res) {
resolve(res.data)
},
fail: function(err) {
reject(err)
}
})
})
}
```
上面的代码中,我们创建了一个`request`函数,它接受两个参数:请求的URL和请求的数据。它返回一个Promise对象,通过`wx.request`方法发起请求,并在请求成功或失败时调用`resolve`或`reject`方法。
使用该函数进行请求时,可以像下面这样使用:
```javascript
request('https://api.example.com', { name: 'John', age: 18 })
.then(data => console.log(data))
.catch(error => console.error(error))
```
上面的代码中,我们使用`request`函数发起了一个请求,并在请求成功时打印返回的数据,在请求失败时打印错误信息。
微信小程序 网络请求封装 promise方式
在微信小程序中,可以使用wx.request()方法进行网络请求,但是使用Promise可以更加方便地处理异步请求。
下面是一个网络请求的封装,使用Promise方式:
```js
const request = (url, method, data) => {
return new Promise((resolve, reject) => {
wx.request({
url: url,
method: method,
data: data,
header: {
'content-type': 'application/json'
},
success: (res) => {
if (res.statusCode === 200) {
resolve(res.data)
} else {
reject(res.errMsg)
}
},
fail: (err) => {
reject(err.errMsg)
}
})
})
}
export default request
```
可以看到,该封装使用了Promise语法,将wx.request()方法返回的结果进行了处理。
使用该封装进行网络请求时,可以这样调用:
```js
import request from 'request.js'
request('http://example.com/api/getData', 'GET', {})
.then((res) => {
console.log(res)
})
.catch((err) => {
console.log(err)
})
```
其中,第一个参数为请求的URL,第二个参数为请求的方法(GET、POST等),第三个参数为请求的数据。请求成功时,会返回一个Promise对象,可以使用.then()方法获取返回数据;请求失败时,会返回一个错误信息,可以使用.catch()方法处理错误。