使用回调机制:
function operation(callback) { var a = 0; var b = 1; a = a + b; a = 5; // may be a heavy db call or http request? // do not return any data, use callback mechanism callback(a)}operation(function(a ) { console.log(a); // a is 5})
使用异步等待
async function operation() { return new Promise(function(resolve, reject) { var a = 0; var b = 1; a = a + b; a = 5; // may be a heavy db call or http request? resolve(a) // successfully fill promise })}async function app() { var a = await operation() // a is 5}app()