2.2.0 • Published 4 years ago
@kennysng/c-promise v2.2.0
c-promise
This is a cancelable Promise library.
Usage
new CancelablePromise(async (resolve, reject, check, canceled) => {
try {
// async tasks
await asyncTask()
await asyncTask()
// check if cancel() is called
await check()
await asyncTask()
await asyncTask()
// return result
return resolve()
}
catch (e) {
// emit canceled event
if (e instanceof CancelError) return canceled()
// throw error
return reject(e)
}
})
new CancelablePromise(anotherCancelablePromise, async (promise, resolve, reject, check, canceled) => {
try {
// async tasks
await asyncTask()
await asyncTask()
// check if cancel() is called
await check()
// wait for the promise
await promise
// return result
return resolve()
}
catch (e) {
// emit canceled event
if (e instanceof CancelError) return canceled()
// throw error
return reject(e)
}
})
new CancelablePromise(createAnotherCancelablePromiseFn, async (createFn, resolve, reject, check, canceled) => {
try {
// async tasks
await asyncTask()
await asyncTask()
// check if cancel() is called
await check()
// create and wait for the promise
await createFn()
// return result
return resolve()
}
catch (e) {
// emit canceled event
if (e instanceof CancelError) return canceled()
// throw error
return reject(e)
}
})Pay attention
check() function consists of 2 steps:
setTimeout()sleep to wait for cancel requestcheck if canceled. It true, throw
CancelError
Note that the setTimeout() step will put great overhead on computation time. Avoid abuse use of check(). Only check at critical point.
2.2.0
4 years ago
2.1.0
6 years ago
2.0.0
6 years ago
2.0.0-rc.2
6 years ago
2.0.0-rc.1
6 years ago
1.5.0
6 years ago
1.4.1
6 years ago
1.4.0
6 years ago
1.3.3
6 years ago
1.3.2
6 years ago
1.3.1
6 years ago
1.3.0
6 years ago
1.2.3
6 years ago
1.2.2
6 years ago
1.2.1
6 years ago
1.2.0
6 years ago
1.1.7
6 years ago
1.1.6
6 years ago
1.1.5
6 years ago
1.1.4
6 years ago
1.1.3
6 years ago
1.1.2
6 years ago
1.1.1
6 years ago
1.1.0
6 years ago
1.0.3
6 years ago
1.0.2
6 years ago
1.0.1
6 years ago
1.0.0
6 years ago