У меня есть две функции,Функции Javascript Callback - Node.js
1) download(uri, filename, callback)
-> Загрузка изображения в определенном месте
2) twitterPost(filename)
-> Tweets изображение
Мне нужно это сделать Асинхронный - так я называю twitterPost
после того, как изображение будет сделано загрузки, но я получаю эту ошибку каждый раз, когда:
throw new Error('File path does not exist: ' + media);
^
Error: File path does not exist: Imgs/18478-wrt1114.jpg
Теперь я понимаю, что это появляется, потому что изображение ч как не загружено, однако не имеет смысла видеть, что функция обратного вызова вызывается после закрытия канала. Вот мой код для обеих функций:
function download(uri, filename, callback) {
request.head(uri, function(err, res, body) {
request(uri).pipe(fs.createWriteStream(filename)).on('end', callback);
});
};
и
function twitterPost(filename) {
var twitterRestClient = new Twitter.RestClient(
// API KEYS AND STUFF HERE
);
twitterRestClient.statusesUpdateWithMedia(
{
'status': 'Test Tweet',
'media[]': filename
},
function(error, result) {
if (error) { console.log('Error: ' + error.message) }
if (result) { console.log(result.text) }
});
}
Вот мой вызов функции:
download(image, filename,twitterPost(filename));
Могу ли я с помощью функции обратного вызова неправильно, или есть какой-то другой вопрос, который я я не замечаю причинения этой проблемы
Спасибо за помощь!
Вы вызова функции перед вызовом 'download'. Это не обратный вызов, и он не является асинхронным - файл еще не существует. – Bergi