решение состоит в том, чтобы:
1) Пообещать метод, который вызывает accessAsync
2) resolve
ошибка, если она есть, вместо ее отклонения
Этовсе равно вернет ошибку, если результат false
, но это не нарушит цепочку обещаний.Чтобы вернуть false
, вы можете просто сделать resolve(false)
, но я обнаружил, что более полезно возвращать ошибку и обрабатывать ее в моем тесте.
модифицированный код:
existsAsync(path) {
return new Promise((resolve, reject) => {
return fs.accessAsync(path, fs.F_OK, (err, data) => {
if (err) {
resolve(err);
} else {
resolve(true);
}
});
});
},