当我尝试调用方法时,该方法中的while循环仅执行一次,而不是给定的5次。有解决办法吗?
ProfileService
这是我的考验
//mock.js
const TestModel = require('src/models/testModel')
const mockFunction = async (id) => {
let i = 0
while(i < 5){
console.log(i)
const response = await calledFunction(id)
return response
i = i + 1
}
}
const calledFunction = async(id) => {
console.log(id)
const testModels = await TestModel.findById({ id })
return testModels
}
module.exports = {
mockFunction
}
我在这里使用了模拟来返回模拟响应,我对此没有任何问题。在上述情况下,while循环应该执行5次,但是一旦执行一次,测试就会停止。测试有问题吗?我应该更改mock.js还是mock.test.js吗?
我是node.js的新手,我们将为您提供任何帮助。 提前致谢。
答案 0 :(得分:2)
在while循环中使用return
会中断循环,因此在循环的第一次迭代中,您将退出循环。因此您应该避免在循环中使用return
。
答案 1 :(得分:-1)
return response
应该在while循环之外,但仍在模拟函数中。
return语句中断了循环。
const mockFunction = async (id) => {
let i = 0
while(i < 5){
console.log(i)
const response = await calledFunction(id)
i = i + 1
}
return response;
}