Подтвердить что ты не робот

Устаревшее предупреждение: вызов асинхронной функции без обратного вызова является устаревшим. - как найти, где находится "функция:"?

Недавно я обновил свой node до 7.2.1 и заметил, что появляется предупреждение:

(node: 4346) Устаревшее предупреждение: вызов асинхронной функции без обратного вызова устарел.

Что это за 4346 для? У меня только 2000 строк в js файле, поэтому он не может быть номером строки. Где я могу найти код?

4b9b3361

Ответ 1

Вы можете использовать опции --trace-deprecation или --throw-deprecation.

Например:

node --trace-deprecation app.js

или

node --throw-deprecation app.js

Первая опция будет регистрировать трассировку стека, а вторая будет вызывать ошибку (которая, если не поймана, также будет записывать трассировку стека).

Кроме того, 4346, скорее всего, идентификатор процесса.

Ответ 2

Я предпочитаю следующие два метода:

1

fs.writeFile('example.md', data, (error) => { console.log("Error!"); });

2

fs.writeFile('example.md', data, function (err) {
    if(err){
        throw err;
    }
});

Ответ 3

Вам необходимо включить функцию обратного вызова для асинхронного метода (writeFile в вашем случае).

Например

var fs = require('fs');
fs.writeFile('writeMe.txt',data,'utf8',(error)=>{
    // your code goes here
});

где

(error) => { });

- функция обратного вызова.

Из версии: v7.0.0
Параметр обратного вызова больше не является обязательным. Не передавая это, выдается предупреждение об отказе.

Пожалуйста, обратитесь: https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback для получения дополнительной информации.

Ответ 4

получил почти такое же сообщение об ошибке:

(node: 13844) Ошибка: вызов асинхронной функции без обратного вызова является устаревшим. внутренний/процесс/warning.js: 21

Использование writeFileSync вместо writeFile решило проблему.