inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

동기, 비동기 처리

미해결

[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지

코드복습중에 비동기, 동기처리 관련하여 궁금한점이 생겨 질문합니다! const User = require('../models/user'); const bcrypt = require('bcrypt'); exports.join = async (req, res, next)=>{ const { nick, email, password } = req.body; try { const exUser = await User.findOne({where: {email}}); if(exUser){ return res.redirect('/join?error=exist') } const hash = await bcrypt.hash(password, 14); await User.create({ nick, email, password: hash, }); return res.redirect('/'); } catch(err){ console.error(err); next(err); } } 위의 코드가 수업중에 작성하신 코드입니다 여기서 아래부분만 이처럼 await를 뺀 상태로 변경하였는데, const exUser = User.findOne({where: {email}}); if(exUser) 가 true 값이 되어 return res.redirect('/join?error=exist') 으로 빠지게 되었습니다. 제가 이해하기로는 await가 붙은 비동기 처리들은 동기처리들이 완료되어 호출스택이 비기전까지는 task큐에서 대기 하는 것으로 알고 있는데, 위의 현상대로면 await가 붙은 아래 코드 2개가 먼저 실행되고 const hash = await bcrypt.hash(password, 14); await User.create({ nick, email, password: hash, }); 이 코드가 실행된 것 같은데 const exUser = User.findOne({where: {email}}); 왜 이런 현상이 발생하는지 궁금합니다!!! 감사합니다

  • node.js
  • express
  • await
양세종 댓글 1 좋아요 0 조회수 271

Dart의 비동기 함수에 대한 aysnc, await 질문입니다.

해결됨

Flutter 앱 개발 기초

Dart에서 비동기로 함수가 동작하려면 async, await 키워드를 사용하는 것으로 알고 있었는데요.. 강의 자료에서 4회차 강의 5:24에 보시면 비동기 관련 소스코드 설명이 동영상과 자료에 있습니다. --------------------------------------------------------- HTTP 요청은 응답까지 시간이 걸리기 때문에 비동기 코드입니다. 따라서 동기로 작동하려면 아래와 같이 async & await을 추가하면 됩니다. main() async { Response result = await Dio().get("URL"); print(result.data); } ---------------------------------------------------------- 그런데, 위의 소스가 비동기로 동작하는 소스 같은데, "동기로 동작하려면" 이라고 되어 있어서요. 오타인지? 아니면 제가 잘 모르는 부분이 있는건지 설명 부탁드립니다.

  • 비동기
  • async
  • Flutter
  • await
  • future
011414 댓글 2 좋아요 1 조회수 842

await 원리 질문 드립니다

해결됨

함수형 프로그래밍과 JavaScript ES6+

항상 답변 해주셔서 감사합니다 async함수에서 await 키워드의 원리가 제가 생각한 것이 맞는지 궁금합니다. 1. 전역 실행 컨택스트 생성후 콜스택 푸시 2. foo 함수 실행 -> foo 실행 컨택스트 생성 후 콜스택 푸시 3. delay1000 함수 실헹 4. 프로미스 생성자 함수가 전달받은 콜백함수를 web api에 넘기고 프로미스 객체를 반환하고 종료 5. foo 실행 컨텍스트에서 await 키워드로 인해 프로미스가 settled 상태가 될 때까지 대기 6. webapi에서 콜백함수 처리 후 프로미스 상태 fulfilled로 변경 7. 런타임 이어서 진행 const delay1000 = async a => new Promise(resolve => setTimeout(() => resolve(a), 1000)); const foo = async () => { const bar = await delay1000(1111); console.log(bar); } foo();

  • await
  • 함수형-프로그래밍
  • async
  • javascript
  • 실행컨텍스트
박재영 댓글 1 좋아요 2 조회수 360

비동기 방식에 대해 질문올려봅니다.

미해결

비전공자를 위한 진짜 입문 올인원 개발 부트캠프

안녕하세요. 그랩님 그랩님 강좌를 잘 보고 있는 한 수강생입니다. 다름이아니라 강의 내용과는 별개의 내용이지만 그랩님을 통해 자바스크립트를 배우고 여러가지 배웠기 때문에 그랩님께 질문 남겨봅니다. const getData = async () => { try { const result = await axios . get ( " https://b2ef45f8-e166-41d7-bd35-9ad159028fbf.mock.pstmn.io/test " ) ; const products = result . data . products ; console . log (products) ; console . log ( ` status:( ${ result . status } ) 통신을 성공했습니다! ` ) ; const data = JSON . stringify (products) ; return data ; } catch (err) { console . error (err) ; console . log ( " 결과를 가져오지 못했습니다. " ) ; return err ; } }; console . log ( getData ()) ; 위에 코드는 프로미스 형식의 axios객체를 async, await을 이용해 then과 catch등을 축약해서 제가 만든 포스트맨 목서버의 데이터를 get메서드로 불러와서 결과값을 확인하는 코드입니다. 실행에는 문제가 전혀 없습니다. 그런데 제가 궁금한 것은 getData 함수 표현식이 async로 감싸져 promise객체를 받아 비동기 처리가 되어서 console.log(getData())가 먼저 실행된 뒤에 getData 함수가 실행된다는것은 알고있습니다. 허나 만약에 비동기 함수에서 리턴값을 받아 출력을 하고 싶을 때는 어떤 처리를 해야 하는지가 궁금합니다. 만약 코드가 실행되면 console.log(getData())가 실행될 때 Promise { <pending> }가 출력이 되었습니다.

  • node.js
  • HTML/CSS
  • 자바스크립트
  • express
  • 비동기
  • react-native
  • axios
  • nodejs
  • async
  • react
  • await
  • 머신러닝 배워볼래요?
  • tensorflow
  • javascript
이승훈 댓글 1 좋아요 1 조회수 262

createBlog가 await하는 동안

해결됨

mongoDB 기초부터 실무까지(feat. Node.js)

createblog가 awiat 하는 동안 또 불리면 어떻게 되나요? 예를들어 여러명의 유저가 동시에 createBlog를 호출하게되면 계속 await하고 다음거 await 처리할때까지 대기 하고 있을 것 같은데... 이런 경우 어떻게 처리되나요??

  • await
  • async
  • mongodb
  • rest-api
  • aws
  • nodejs
  • javascript
  • DBMS/RDBMS
  • 데이터 엔지니어링
GODOT 댓글 3 좋아요 3 조회수 330

인기 태그

인프런 TOP Writers

주간 인기글