Comments (2)
Hi @Kaos1337,
The downloadFile()
function is not awaitable in its current form. Try this:
function downloadFile(uri, filename) {
return new Promise(function (resolve, reject) {
console.log("[downloadFile] definitiveName: " + filename); <--- print correctly the definitive name
request(uri)
.pipe(fs.createWriteStream(filesFolder + filename))
.on('close', function(err) {
if(err) {
reject(err);
}
else {
console.log("[downloadFile] Downloaded: " + filename); <--- print correctly the definitive name
resolve(filename); <-- the return of the function
}
});
});
}
Explanation: The original downloadFile()
function runs the first console.log
, then starts the asynchronous request(uri)
operation, then immiediately returns undefined
. This undefined
is what is being passed to await
in the other function you provided. I have wrapped the code inside downloadFile
in a promise, and returned the promise. The promise gets resolved once the file is downloaded. await
receives this promise and waits for it to resolve before continuing.
BTW wrap your code in triple backticks to make it easier to read in github comments, like so:
```
function foo() { ... }
```
from asyncawait.
Thank you, works!
I've also corrected my first message as you suggested.
from asyncawait.
Related Issues (20)
- Fibers are more flexible(?) HOT 18
- Use with ES6 classes #2 HOT 1
- Not working on nw.js HOT 1
- Error: await functions, yield functions, and value-returning suspendable functions. HOT 1
- setTimout example? HOT 2
- Unexpected token function HOT 6
- Fiber not running HOT 1
- why so long time require this two packages? HOT 1
- Extra parentheses? HOT 2
- fibers v1.0.16 dependency breaks node 4.x HOT 1
- Using a for loop HOT 2
- await inside an awaited function
- Stuck within await()... HOT 2
- Installation issue on node version 9.0.0 HOT 1
- Using forEach with Callbacks function
- Not an issue, just a thank you. HOT 1
- asyncawait fails to build on Ubuntu 16.04.4 LTS HOT 3
- Examples in typescript HOT 1
- Upgrade fibers package for nodejs 10.x or 12.x HOT 6
- Await behavior in non Async function or normal function HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from asyncawait.