Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I am developing in electron. My project has the following snippet of code:

showLoading('confirm')
    api.deliveries.create(NewDelivery.createDelivery()).then((insertId) => {
        NewDelivery.back()
        showAlert('alert-success', 'Delivery Saved!', 'Delivery ID: ' + insertId)
    }).catch((error) => {
        eid('message').innerText = 'Delivery not saved. Try again later or contact the developer'
        throw error
    }).finally(() => {
        finishLoading('confirm')
        $('#confirmModal').modal('hide')
    })

When the block executes successfully, NewDelivery.back is called, which removes the elements with ids 'confirm' and 'confirmModal' from the DOM, breaking my application. My question is, is there a way to execute the finally block before either then or catch is called? Thank you.

question from:https://stackoverflow.com/questions/65908172/execute-a-function-e-g-finally-before-then-catch-in-javascript

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
767 views
Welcome To Ask or Share your Answers For Others

1 Answer

You just need to reorder the chain...

Promise.resolve('do somthing')
  .finally(() => console.log('finally called'))
  .then(() => console.log('successfull'))
  .catch(() => console.log('error!'))

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...