微信小程序 Promise 对象
时间: 2023-10-03 18:09:01 浏览: 39
微信小程序中的 Promise 对象是一种用于异步编程的技术,它可以让我们更加方便地处理异步操作,避免回调地狱的情况出现。在微信小程序中,我们可以使用 Promise 对象来处理网络请求、文件读写等异步操作。
一个 Promise 对象可以处于三种状态之一:待定(pending)、已完成(fulfilled)、已拒绝(rejected)。在 Promise 对象创建后,它会立即处于待定状态。当异步操作执行成功时,Promise 对象会转为已完成状态,并返回异步操作的结果;当异步操作执行失败时,Promise 对象会转为已拒绝状态,并返回一个错误对象。
在微信小程序中,我们可以使用 Promise 对象的 then() 和 catch() 方法来处理已完成和已拒绝状态下的结果。then() 方法接收两个参数:第一个参数是处理已完成状态下的结果的回调函数,第二个参数是处理已拒绝状态下的结果的回调函数。catch() 方法只接收一个参数,用于处理已拒绝状态下的结果。
下面是一个使用 Promise 对象处理网络请求的示例代码:
```javascript
// 发送请求
const request = new Promise((resolve, reject) => {
wx.request({
url: 'https://www.example.com/api',
success: (res) => {
resolve(res.data); // 请求成功,将数据传递给 resolve 函数
},
fail: (error) => {
reject(error); // 请求失败,将错误信息传递给 reject 函数
}
})
});
// 处理请求结果
request.then(data => {
console.log(data);
}).catch(error => {
console.error(error);
});
```
在上面的代码中,我们首先创建了一个 Promise 对象,并在其中发送了一个网络请求。当请求成功时,我们调用了 resolve() 函数,并将请求返回的数据作为参数传递给它;当请求失败时,我们调用了 reject() 函数,并将错误信息作为参数传递给它。最后,我们使用 then() 和 catch() 方法来处理已完成和已拒绝状态下的结果。