用async await更改为等待this.addressFee()方法执行完再执行this.loadData();
时间: 2024-03-05 19:53:52 浏览: 129
您可以使用 async/await 实现等待 `this.addressFee()` 方法执行完后再执行 `this.loadData()` 方法的操作。具体代码如下:
```javascript
async yourFunction() {
await this.addressFee();
await this.loadData();
}
```
上述代码中,`yourFunction()` 方法使用了 `async` 关键字来表示它是一个异步函数。在函数内部,我们使用 `await` 关键字来等待 `this.addressFee()` 方法执行完毕。当 `this.addressFee()` 方法执行完成后,`await` 关键字会等待 Promise 对象返回结果。如果 Promise 对象返回成功,则 `await` 关键字后面的代码会继续执行;如果 Promise 对象返回错误,则会抛出异常,并且后面的代码不会被执行。
当 `this.loadData()` 方法执行完成后,也会等待 Promise 对象返回结果,然后继续执行后面的代码。这样就实现了等待 `this.addressFee()` 方法执行完后再执行 `this.loadData()` 方法的操作。
相关问题
this.$db[_address].where(`create_uid == "${this.member._id}"`).tofirst({ orderby: 'is_default desc' }) .then(res => { console.log('onShow res', res); if (res && res.code === 200) { this.addrData = res.datas; this.calcTotalMoney(); this.addressFee(this.addrData); this.loadData(); } })用async await更改这段代码为等待this.addressFee()方法执行完再执行this.loadData();
您可以使用 `async/await` 实现等待 `this.addressFee()` 方法执行完毕再执行 `this.loadData()` 方法的操作。具体代码如下:
```javascript
async yourFunction() {
try {
const res = await this.$db[_address].where(`create_uid == "${this.member._id}"`).tofirst({
orderby: 'is_default desc'
});
console.log('onShow res', res);
if (res && res.code === 200) {
this.addrData = res.datas;
this.calcTotalMoney();
await this.addressFee(this.addrData);
await this.loadData();
}
} catch (error) {
console.error(error);
}
}
```
上述代码中,`yourFunction()` 方法使用了 `async` 关键字来表示它是一个异步函数。在函数内部,我们使用 `await` 关键字来等待 `this.$db[_address].where().tofirst()` 方法执行完成,返回结果保存在 `res` 变量中。
如果 `res` 变量存在并且 `res.code` 等于 200,则执行下一步操作。在这一步操作中,我们使用 `await` 关键字等待 `this.addressFee(this.addrData)` 方法执行完毕。当 `this.addressFee(this.addrData)` 方法执行完成后,再使用 `await` 关键字等待 `this.loadData()` 方法执行结束。
在 `try/catch` 结构中,我们使用 `catch` 捕获可能出现的错误,并将错误信息打印到控制台上。这样就实现了等待 `this.addressFee()` 方法执行完毕再执行 `this.loadData()` 方法的操作。
修改这段代码实现 等待this.addressFee方法执行完再执行this.loadDataonShow() { if (this.addrData && this.addrData._id) return; this.$db[_address].where(`create_uid == "${this.member._id}"`).tofirst({ orderby: 'is_default desc' }) .then(res => { console.log('onShow res', res); if (res && res.code === 200) { this.addrData = res.datas; this.calcTotalMoney(); this.addressFee(this.addrData); this.loadData(); } }) },
您可以使用 `async/await` 实现等待 `this.addressFee()` 方法执行完毕再执行 `this.loadData()` 方法的操作。具体代码如下:
```javascript
async onShow() {
if (this.addrData && this.addrData._id) return;
try {
const res = await this.$db[_address].where(`create_uid == "${this.member._id}"`).tofirst({
orderby: 'is_default desc'
});
console.log('onShow res', res);
if (res && res.code === 200) {
this.addrData = res.datas;
this.calcTotalMoney();
await this.addressFee(this.addrData);
await this.loadData();
}
} catch (error) {
console.error(error);
}
}
```
上述代码中,我们使用 `async/await` 实现了等待 `this.addressFee()` 方法执行完毕再执行 `this.loadData()` 方法的操作。在 `onShow()` 方法中,我们首先判断 `this.addrData` 是否存在,如果存在则直接返回。
如果 `this.addrData` 不存在,则执行下一步操作。在这一步操作中,我们使用 `await` 关键字等待 `this.$db[_address].where().tofirst()` 方法执行完成,返回结果保存在 `res` 变量中。
如果 `res` 变量存在并且 `res.code` 等于 200,则执行下一步操作。在这一步操作中,我们使用 `await` 关键字等待 `this.addressFee(this.addrData)` 方法执行完毕。当 `this.addressFee(this.addrData)` 方法执行完成后,再使用 `await` 关键字等待 `this.loadData()` 方法执行结束。
在 `try/catch` 结构中,我们使用 `catch` 捕获可能出现的错误,并将错误信息打印到控制台上。这样就实现了等待 `this.addressFee()` 方法执行完毕再执行 `this.loadData()` 方法的操作。
阅读全文