1.2.5 • Published 8 years ago
promise-faker v1.2.5
promise-faker
Provides Promise-like APIs but runs synchronously. This module is useful for controlling flows.
Install
$ npm install promise-fakerUsage
import FakePromise from 'promise-faker'
// Write flows as normal Promise does
function factory (p) {
const result = p.resolve(1)
.then(() => {
return 2
})
// Not to make the following chain.
return p.resolve(result, true)
}
// Then, run them as synchronous flows
factory(FakePromise) // 2
factory(Promise) // Promise {2}FakePromise actually runs synchronously:
Promise.resolve(1).then(console.log)
console.log(2)
// 2
// 1
FakePromise.resolve(3).then(console.log)
console.log(4)
// 3
// 4new FakePromise(executor)
- executor
Function(resolve, reject)
Returns a fake promise
FakePromise.resolve(subject , end)
- end
?boolean=falseThe additional parameter only forFakePromise, and if this parameter istrue, it will try to get the final value or throw an error if there is a rejection.
FakePromise.resolve(FakePromise.resolve(1), true)
// 1
FakePromise.resolve(FakePromise.reject('2'), true)
// -> throw '2'And if the fake promise is still pending, an Error('pending unexpectedly') error will thrown.
const p = new FakePromise((resolve, reject) => {
return 1
})
try {
FakePromise.resolve(p, true)
} catch (e) {
console.log(e.message) // 'pending unexpectedly'
}FakePromise.reject(subject)
Similar as Promise.reject, but returns a fake promise
FakePromise.all(tasks)
Similar as Promise.all, but returns a fake promise
promise.then(onResolve , onReject)
Similar as promise.then, but returns a fake promise
promise.catch(onReject)
Similar as promise.catch, but returns a fake promise
await
The FakePromise instance could even be awaited
console.log(await FakePromise.resolve(1)) // 1
await FakePromise.reject('error') // throw 'error'License
MIT