Improve promise handling

This commit is contained in:
Yarmo Mackenbach 2021-03-25 16:28:56 +01:00
parent ff93ceee0d
commit 0bc97bd902
No known key found for this signature in database
GPG key ID: 37367F4AF4087AD1
2 changed files with 32 additions and 28 deletions

View file

@ -27,18 +27,20 @@ module.exports = async (roomId, eventId, opts) => {
const url = `https://${opts.instance}/_matrix/client/r0/rooms/${roomId}/event/${eventId}?access_token=${opts.accessToken}` const url = `https://${opts.instance}/_matrix/client/r0/rooms/${roomId}/event/${eventId}?access_token=${opts.accessToken}`
const fetchPromise = bentReq(url, null, { const fetchPromise = new Promise((resolve, reject) => {
Accept: 'application/json', bentReq(url, null, {
Accept: 'application/json',
})
.then(async (data) => {
return await data.json()
})
.then((data) => {
resolve(data)
})
.catch((error) => {
reject(error)
})
}) })
.then(async (data) => {
return await data.json()
})
.then((data) => {
return data
})
.catch((error) => {
return error
})
return Promise.race([fetchPromise, timeoutPromise]).then((result) => { return Promise.race([fetchPromise, timeoutPromise]).then((result) => {
clearTimeout(timeoutHandle) clearTimeout(timeoutHandle)

View file

@ -25,23 +25,25 @@ module.exports = async (tweetId, opts) => {
) )
}) })
const fetchPromise = bentReq( const fetchPromise = new Promise((resolve, reject) => {
`https://api.twitter.com/1.1/statuses/show.json?id=${tweetId}&tweet_mode=extended`, bentReq(
null, `https://api.twitter.com/1.1/statuses/show.json?id=${tweetId}&tweet_mode=extended`,
{ null,
Accept: 'application/json', {
Authorization: `Bearer ${opts.bearerToken}`, Accept: 'application/json',
} Authorization: `Bearer ${opts.bearerToken}`,
) }
.then(async (data) => { )
return await data.json() .then(async (data) => {
}) return await data.json()
.then((data) => { })
return data.full_text .then((data) => {
}) resolve(data.full_text)
.catch((error) => { })
return error .catch((error) => {
}) reject(error)
})
})
return Promise.race([fetchPromise, timeoutPromise]).then((result) => { return Promise.race([fetchPromise, timeoutPromise]).then((result) => {
clearTimeout(timeoutHandle) clearTimeout(timeoutHandle)