2017-01-14 8 views
0

Я попытался заменить попробовать поймать блок с lodash»_.attempt(), чтобы очистить свой код сервера некоторые_.attempt() возвращает ошибку, когда пытаются/поймать не

let target = (_.attempt(fs.statSync("path")));

возвращает ошибку, если попытаться/поймать его эквивалент не

Я попытался с версией асинхронной, а также, если я использую _.attempt() неправильно не ясно мне, предложения?

ответ

3

Lodash-х _.attempt() ожидает функция для вызова в качестве 1-го параметра, а аргументы функции, как 2:

let target = _.attempt(function(path) { 
    fs.statSync(path); 
}, "path"); 

Или сокращенный вариант предложил ИНГ jmmygoggle's comment:

let target = _.attempt(fs.statSync, "path"); 

Вместо метод для вызова, вы передали результат fs.statSync("path"), который выдает ошибку, которую _.attempt() не может обрабатывать.

+0

Оглядываясь на документацию после вашего объяснения, и это выглядит так очевидно, спасибо, что объяснили это так ясно! –

+0

Более краткий эквивалент, похожий на оригинал: 'let target = _.attempt (fs.statSync,« path »);' – jmmygoggle

+0

@jmmygoggle - спасибо. Добавлено в ответ. –