Итак, моя проблема заключается в следующем. Я возвращаю обещание, которое разрешается, когда нет проблем при сохранении некоторых данных, но если (1.) Каталог, в котором я хочу сохранить файл, не существует или (2.) В этой папке уже существует файл с этим именем; обещание отклоняет конкретную ошибку.
Router.post('/save/:userid?/:name?/:type?/:payload?', ( request, response ) => {
let promise = new Promise( async ( resolve, reject ) => {
let params = { ...request.params, ...request.query, ...request.body };
let path = `./GameContent/Data/${ params.userid }`;
let fileStream = new FileStream();
let exists = await fileStream.directoryExists( path );
if ( exists ) {
let fileDirectory = `${ path }/${ params.name }.json`;
exists = await fileStream.directoryExists( fileDirectory );
if ( !exists ) {
let bytesWritten = await fileStream.writeFileAt ( fileDirectory, params.payload );
let result = { name: params.name, bytes: bytesWritten, error: 0 };
resolve( JSON.stringify( result ) );
}
else {
let result = { error: 102 };
reject( JSON.stringify( result ) );
}
}
else {
let result = { error: 101 };
reject( JSON.stringify( result ) );
}
});
response.send( promise );
});
Пока все хорошо, но проблема в том, что следующий код не обрабатывает отклонение.
$.post('/api/save', levelJSON)
.catch ( err => {
//Do something...
});
В настоящее время я получаю ожидаемую ошибку (ошибка: 102). Но я не смог справиться с ошибкой.
Отладчик выдает следующее: UnhandledPromiseRejectionWarning: {"error":102} UnhandledPromiseRejectionWarning: отклонение необработанного обещания.
$.post
это метод публикации jquery ajax или какой-то внутренний код? - person palaѕн   schedule 12.04.2020