nodejs 데이터베이스 조회 후 값 을 전단 으로 되 돌려 줍 니 다.
며칠 전에 프로젝트 에서 이런 문 제 를 만 났 습 니 다. 바로 전단 에서 특정한 요 구 를 촉발 하여 데이터 베 이 스 를 조회 하고 이 값 을 되 돌려 주 려 고 했 습 니 다. 그러나 어떻게 든 돌아 오지 못 했 습 니 다. 조회 가 끝 날 때 까지 기다 리 지 않 고 너무 일찍 빈 데 이 터 를 되 돌려 주 었 습 니 다. 이것 은 저 를 오랫동안 괴 롭 혔 습 니 다. 그 당시 에 대체 하 는 방법 이 생각 났 는데 모두 근본 적 인 방법 이 아니 었 습 니 다.오늘 은 promise 로 이 문 제 를 다시 해결 할 계획 이다.
promise 의 역할 은 원래 비동기 적 으로 실 행 된 코드 를 동기 화 실행 과 유사 하 게 만 드 는 것 이다. 즉, 실행 이 끝 난 후에 결 과 를 되 돌려 주 는 것 이다.물론 저 는 현재 promise 에 대해 간단 한 이해 만 가지 고 있 습 니 다. 그 후에 도 깊이 공부 할 것 입 니 다. 다음은 이 문 제 를 어떻게 해결 하 는 지 말씀 드 리 겠 습 니 다.
app.use(controller.get('/aaa', function*() {
this.set('Cache-Control', 'no-cache');
var data = yield service.bbb();
this.body = data;
}));
koa 프레임 워 크 의 yield 를 사용 할 수 있 습 니 다. promise 는 되 돌아 오 는 매개 변수 로 사용 할 수 있 습 니 다.
exports.bbb = function () {
var promise = new Promise(function (resolve, reject) {
var mysql = require('mysql');
var connection = mysql.createConnection({
host: '127.0.0.1',
user: 'root',
password: 'root',
port: '3306',
database: 'db_biology'
});
connection.connect();
connection.query(
"SELECT * FROM Sheet1",
function selectCb(err, results) {
if (results) {
console.log(results);
//resolve(results);
resolve(results);
}
if (err) {
console.log(err);
}
connection.end();
}
);
});
promise.then(function (value) {
console.log(value);
return value;
// success
}, function (value) {
// failure
});
return promise;
};
promise 만 이용 하면 우리 가 예전 에 직접 return 한 결 과 를 실현 할 수 있 습 니 다. 그러면 우아 하 게 비동기 코드 를 동기 화 할 수 있 습 니 다 ~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.