Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
755 views
in Technique[技术] by (71.8m points)

execute a function (e.g. finally) before then/catch in javascript

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

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

1 Reply

0 votes
by (71.8m points)

You just need to reorder the chain...

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...