문자열의 일부 텍스트를 pg-promise
을 사용하는 데이터베이스의 값으로 대체하고 싶습니다. 전에 Promise을 사용하지 않았으므로 최선의 방법으로 처리하는 방법에 어려움을 겪고 있습니다. 나는 동기 및 비동기 프로그래밍을 결합하려고 나는이 작동하지 않습니다 지금까지 시도 무엇텍스트를 pg-promise의 데이터로 바꾸기
:
var uid = ...;
"Some string".replace(/\#\{([\w]*?)\}/gmi, function(m, c) {
var r = "";
db.one("SELECT a FROM ... WHERE x = $1 AND y = $2", [c, uid])
.then(function(data) {
r = data.a;
});
return r;
});
r
는, 당연히, 빈 문자열입니다. 이 블록을 데이터베이스의 값을 "대기"하도록 다시 작성하는 방법이 있습니까?
내가하려는 것은 사용자에게 보내는 메시지의 자리 표시자를 바꾸는 것입니다. 그래서 위의 prepareMessage
라는 함수의 일부이며 나는 그래서 이런 식으로 뭔가 보이는 Socket.IO에 사용하는 사용자에게 메시지를 보낼 : 일부 독서와 더 사고 후
io.to(socket.id).emit('message', { text: prepareMessage(msg) });
논리가 바뀌 었습니다. 먼저 비동기 블록을 실행하고 데이터를 얻은 후에는 동기 부분을 수행하고 다른 방법은 수행하지 마십시오. –
@ vitaly-t 나는 일반적인 생각을 이해하지만 실제로 그것을 내 문제로 해석 할 수는 없다. 의사 코드로 예제를 제공해 주시겠습니까? – neurotroph