BindCommand 객체의 execute() 메소드는 Promise를 반환합니다. 따라서 async 및 await 키워드를 사용하여 비동기적으로 명령을 실행하고 필요한 경우 동기화 코드를 작성할 수 있습니다.

타입 : execute()

type execute () => Promise<void>;

단일 명령어 동기화 예제

다음 코드는 ‘read_member’ 라는 명령을 실행하고, 해당 명령이 완료된 후에 알림을 표시합니다.

var bm = new BindModel();

bm.addCommand('read_member', 3);
// ... omit column settings

async function readView() {
    try {
        await bm.cmd['read_member'].execute();
        alert( 'Called membership information');
    } catch (error) {
        console.error ('Error encountered during command execution:', error);
    }
}
  • 이 코드에서 execute() 메소드는 Promise를 반환하므로 await 키워드를 사용하여 명령이 완료될 때까지 대기합니다. 명령이 성공적으로 완료되면 알림 메시지를 표시합니다. 또한, try…catch 블록을 사용하여 명령 실행 중 발생할 수 있는 오류를 처리할 수 있습니다.

다중 명령어 동기화 예제

다음 코드는 read_meb와 read_corp라는 두 개의 명령을 순차적으로 실행합니다.

var bm = new BindModel();

bm.addCommand('read_meb', 3);
bm.addCommand('read_corp', 3);
// ... omit column settings

async function readView() {
    try {
        await bm.cmd['read_meb'].execute();
        console.log ('calling private membership information');
        
        await bm.cmd['read_corp'].execute();
        console.log ('could get corporation information');
    } catch (error) {
        console.error ('Error encountered during command execution:', error);
    }
}
  • 이 코드에서는 두 개의 명령을 순차적으로 실행하며, 각 명령이 완료될 때마다 로그 메시지를 출력합니다. try…catch 블록을 사용하여 두 명령 실행 중 발생할 수 있는 오류를 처리합니다.

동시 실행 예제

명령을 순차적으로 실행하는 대신 동시에 실행해야 하는 경우, Promise.all을 사용할 수 있습니다.

var bm = new BindModel();

bm.addCommand('read_meb', 3);
bm.addCommand('read_corp', 3);
// ... Column Settings
async function readView() {
    try {
        await Promise.all([
            bm.cmd['read_meb'].execute(),
            bm.cmd['read_corp'].execute()
        ]);
        console.log ('Called all information');
    } catch (error) {
        console.error ('Error encountered during command execution:', error);
    }
}
  • 이 코드에서는 Promise.all을 사용하여 두 명령을 동시에 실행하고, 모든 명령이 완료될 때까지 기다립니다. 모든 명령이 성공적으로 완료되면 로그 메시지를 출력합니다. 오류가 발생하면 catch 블록에서 처리합니다.

이와 같이 async 및 await 키워드를 사용하면 Promise 기반의 비동기 코드를 쉽게 동기화할 수 있습니다. 이를 통해 명령 실행 순서를 제어하고 오류를 처리할 수 있습니다.

Updated: