代码语言:javascript复制Thinking系列,旨在利用10分钟的时间传达一种可落地的编程思想。
function fn (cb?: Function, ctx?: Object) {
// 函数内部逻辑
console.log('...')
// promise
if (!cb && typeof Promise !== 'undefined') {
return new Promise(resolve => {
resolve(ctx)
})
}
// callback
if (cb) {
cb.call(ctx)
}
}
callback 调用
代码语言:javascript复制fn(() => console.log('callback')) // ... => callback
Promise 调用
代码语言:javascript复制fn().then(() => {
console.log('promise resolve') // ... => promise resolve
})
async…await 调用
代码语言:javascript复制(async function () {
await fn()
console.log('async...await') // ... => async...await
})()