mirror of
https://github.com/terribleplan/next.js.git
synced 2024-01-19 02:48:18 +00:00
Make sure to run the promise logic if only called .then()
This commit is contained in:
parent
fc34484e5e
commit
d4e047839c
|
@ -64,13 +64,7 @@ export class SameLoopPromise {
|
||||||
constructor (cb) {
|
constructor (cb) {
|
||||||
this.onResultCallbacks = []
|
this.onResultCallbacks = []
|
||||||
this.onErrorCallbacks = []
|
this.onErrorCallbacks = []
|
||||||
|
this.cb = cb
|
||||||
if (cb) {
|
|
||||||
cb(
|
|
||||||
(result) => this.setResult(result),
|
|
||||||
(error) => this.setError(error)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setResult (result) {
|
setResult (result) {
|
||||||
|
@ -88,6 +82,7 @@ export class SameLoopPromise {
|
||||||
}
|
}
|
||||||
|
|
||||||
then (onResult, onError) {
|
then (onResult, onError) {
|
||||||
|
this.runIfNeeded()
|
||||||
const promise = new SameLoopPromise()
|
const promise = new SameLoopPromise()
|
||||||
|
|
||||||
const handleError = () => {
|
const handleError = () => {
|
||||||
|
@ -119,6 +114,7 @@ export class SameLoopPromise {
|
||||||
}
|
}
|
||||||
|
|
||||||
catch (onError) {
|
catch (onError) {
|
||||||
|
this.runIfNeeded()
|
||||||
const promise = new SameLoopPromise()
|
const promise = new SameLoopPromise()
|
||||||
|
|
||||||
const handleError = () => {
|
const handleError = () => {
|
||||||
|
@ -144,4 +140,15 @@ export class SameLoopPromise {
|
||||||
|
|
||||||
return promise
|
return promise
|
||||||
}
|
}
|
||||||
|
|
||||||
|
runIfNeeded () {
|
||||||
|
if (!this.cb) return
|
||||||
|
if (this.ran) return
|
||||||
|
|
||||||
|
this.ran = true
|
||||||
|
this.cb(
|
||||||
|
(result) => this.setResult(result),
|
||||||
|
(error) => this.setError(error)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue