현재 블루 버드에서 놀고 있습니다. 내 목표는 비동기 적으로이 모듈을 사용하여 함수를 실행하는 것입니다. 제 코드에 놓친 것이 있는지 궁금합니다. 내 스크립트가 예상대로 작동하지 않습니다. 아래 코드를 확인해 주시겠습니까? 감사!Node.js | 블루 버드 약속이 비동기식으로 작업을 실행하지 않습니다.
'use strict';
const Promise = require('bluebird');
// Generate alphabets
function range(start, stop) {
const result = [];
for (let idx = start.charCodeAt(0), end = stop.charCodeAt(0); idx <= end; idx++) {
result.push(String.fromCharCode(idx));
};
return result.join('');
};
// List alphabets
function listAz() {
const az = range('A', 'Z');
Array.from(az).forEach(function(char) {
console.log(char);
});
};
// List numbers
function listNum() {
for (let num = 1; num <= 10; num++) {
console.log(num);
};
};
function main() {
const listNumPromise = Promise.promisify(listNum);
const listAzPromise = Promise.promisify(listAz);
console.log('Hey!');
console.log('Calling listNum now...');
listNumPromise()
.then(function(data) {
console.log(data);
})
.catch(function(err) {
console.log(err);
});
console.log('Calling listAz now...');
listAzPromise()
.then(function(data) {
console.log(data);
})
.catch(function(err) {
console.log(err);
});
console.log('Done!');
};
if (require.main == module) {
main();
};
는 여기에 내가 위의 코드를 사용하여 내 스크립트를 실행했을 때 결과입니다 :
Hey!
Calling listNum now...
1
2
3
4
5
6
7
8
9
10
Calling listAz now...
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Done!
내 기대는 다음과 같습니다
Hey!
Calling listNum now...
Calling listAz now...
Done
1-10
A-Z
병렬로 실행할 함수가 필요한 경우 promise.all()을 시도하십시오. – user93
* "내 스크립트가 예상대로 작동하지 않습니다."* : 예상대로 출력을 추가 할 수 있습니까? (우리에게 말하지 않는다면, 우리는 당신이 무엇을 기대했는지 알 수 없습니다.) – trincot
두 기능이 모두 동기식입니다. 블루 버드는 기적적으로 비동기로 만들 수 없습니다. – robertklep