2016-06-15 3 views
3

Я новичок, чтобы пообещать, и мне интересно, какая из лучших практик с родной Promise (NodeJs).Обещание - разница между возвратом отклонения или отклонения (значение)

я положил немного ниже код, чтобы лучше понять вопрос:

Код A

function foo(condition) { 
return new Promise((resolve, reject) => { 
    if(condition){ 
     resolve('Promise result!'); 
    } else { 
     reject('Promise rejected!'); 
    } 
}); 
} 

Код B

function foo(condition) { 
return new Promise((resolve, reject) => { 
    if(condition){ 
     return resolve('Promise result!'); 
    } else { 
     return reject('Promise rejected!'); 
    } 
}); 
} 

В раствор Б, я добавляю оператор возврата ,

Полезно?

Какая разница между Код А и Код B? Если есть?

+3

Конструктор 'Promise' не заботится о том, что вы возвращаете из своей функции. Это может быть 'return 42;' – zerkms

+1

Итак, в коде A возврат для * обещания * является возвратом undefined? – enricop89

+1

Да. .............. – zerkms

ответ

3

Короткий ответ: Не имеет значения, вернетесь вы или нет.

spec сообщает, что возвращаемое значение исполнителя не используется. Он проверяется только если вызов вернул резкое завершение. (выброс ошибки вызывает резкое завершение). Если внезапное завершение завершено, обещание отклоняется.

+1

Вы правы, говоря, что возвращаемое значение не используется, хотя иногда полезно возвращать после отклонения (если вы не хотите, чтобы остальная часть метода быть казненным). –

Смежные вопросы