我有这个代码
const admin = await this.userRepository.findOne({ username: 'admin' });
admin.balance -= 5000;
return await this.userRepository.save(admin).then(data => {
return { balance: data.balance };
});
但是当我执行循环函数fetch时,它返回了错误的值:
const Test = async() => fetch('http://localhost:8843/user', {method: "POST"}).then(res=>res.json()).then(data=> console.log(data))
for(let i =0; i<10; i++) Test()
初始值:
用户名:“管理员”,余额: 15000
我得到的结果是:
{balance: 10000}
{balance: 10000}
{balance: 10000}
{balance: 10000}
{balance: 10000}
{balance: 10000}
{balance: 5000}
{balance: 5000}
{balance: 5000}
{balance: 5000}
发布于 2018-06-11 05:45:50
Test
不应该用async ()
声明,因为它已经返回了一个Promise
,在它上使用async
将使它返回一个解析Promise
的Promise
。
如果您想逐个执行Test()
10次,则需要在await
循环中执行。
const Test = () => (
fetch('http://localhost:8843/user', {method : "POST"})
.then(res=>res.json())
.then(data=> console.log(data))
);
// somewhere inside a `async` function
for(let i = 0; i < 10; i++) {
await Test();
}
发布于 2018-06-10 23:12:49
我认为在return
语句中,您需要使用async
运算符,该运算符通常位于await
之后,告诉您的应用程序仅在操作完成时完成。
https://stackoverflow.com/questions/50785047
复制相似问题