es5를 사용하려면 es6을 작성한 후 Babel을 사용하는 것이 좋습니다. 그러나 Node 7.6+는 이미 es2017의 일부 기능을 지원하므로 실제로 이 문제에 대해 걱정할 필요가 없습니다. 정말로 필요한 경우 findById 콜백에서 계산 방법을 사용하여 확대 이동 횟수를 계산합니다(콜백 호출). 🎜
🎜옵션 2🎜🎜
🎜루프의 배열에 User.findById를 추가한 다음 Promise.all 및 callback을 사용하여 Promise.all에 씁니다. () .then()에 있습니다. 🎜
🎜🎜옵션 3🎜🎜
🎜상태변수를 이용하여 매번 확인하고, 조건이 만족되면 콜백을 실행합니다. 추악한 방법, 사용하지 마세요. 🎜
이미 es6 구문을 사용한 것을 확인했으므로 올바른 솔루션은 Promise여야 합니다. Promies는 직접 Promies로 캡슐화할 수 있습니다
으아악물론 블루버드에서 제공하는 도구 기능을 사용해 Promise를 캡슐화할 수도 있습니다
여기서는 여러 비동기 호출을 실행하고 있으므로 함께 반환하려면 여러 결과가 있어야 합니다. 따라서
Promise.all
뒤에 있는then()
의 콜백에 주의하세요.Promise.all
后面then()
中的回调。如果你要用 es5,建议你写成 es6 再 Babel。不过 Node 7.6+ 已经支持 es2017 的一些特性,所以其实不必在意这个问题。如果确实需要,就采用在
es5를 사용하려면 es6을 작성한 후 Babel을 사용하는 것이 좋습니다. 그러나 Node 7.6+는 이미 es2017의 일부 기능을 지원하므로 실제로 이 문제에 대해 걱정할 필요가 없습니다. 정말로 필요한 경우findById
findById
콜백에서 계산 방법을 사용하여 확대 이동 횟수를 계산합니다(콜백 호출). 🎜옵션 1
async/await
를 사용하세요. 이를 통해User.findById
를 동기식으로 사용할 수 있습니다.async/await
。这样就可以按照同步方式使用User.findById
。方案二
在循环中把
User.findById
加入一个数组,然后用Promise.all
,callback
写在Promise.all().then()
中。方案三
使用一个状态变量,每次检查一下,满足条件再执行
🎜옵션 2🎜🎜 🎜루프의 배열에callback
User.findById
를 추가한 다음Promise.all
및callback
을 사용하여Promise.all에 씁니다. () .then()
에 있습니다. 🎜 🎜🎜옵션 3🎜🎜 🎜상태변수를 이용하여 매번 확인하고, 조건이 만족되면콜백
을 실행합니다. 추악한 방법, 사용하지 마세요. 🎜파라미터를 설정하고, 설정을 실행한 후 매번 콜백 판정을 입력합니다..
콜백 지옥의 경우 Promise 또는 유사한 라이브러리를 사용하세요.
으아아아
내 솔루션이 약간 낮습니다. . ?
2층이 맞습니다. 약속을 이용하여 해결하세요.