Node.js
동기식 대 nodejs의 비동기식 프로그래밍
수색…
비동기 사용
비동기 패키지 는 비동기 코드 용 함수를 제공합니다.
auto 함수를 사용하면 두 개 이상의 함수 사이에 비동기 관계를 정의 할 수 있습니다.
var async = require('async');
async.auto({
get_data: function(callback) {
console.log('in get_data');
// async code to get some data
callback(null, 'data', 'converted to array');
},
make_folder: function(callback) {
console.log('in make_folder');
// async code to create a directory to store a file in
// this is run at the same time as getting the data
callback(null, 'folder');
},
write_file: ['get_data', 'make_folder', function(results, callback) {
console.log('in write_file', JSON.stringify(results));
// once there is some data and the directory exists,
// write the data to a file in the directory
callback(null, 'filename');
}],
email_link: ['write_file', function(results, callback) {
console.log('in email_link', JSON.stringify(results));
// once the file is written let's email a link to it...
// results.write_file contains the filename returned by write_file.
callback(null, {'file':results.write_file, 'email':'[email protected]'});
}]
}, function(err, results) {
console.log('err = ', err);
console.log('results = ', results);
});
이 코드는 get_data
, make_folder
, write_file
및 email_link
를 올바른 순서로 호출하여 동 기적으로 만들 수 있습니다. Async는 결과를 추적하고 오류가 발생하면 ( null
아닌 callback
첫 번째 매개 변수) 다른 함수의 실행을 중지합니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow