Вызовите функции resolve
и reject
, когда запланированные операции были фактически завершены.
Помните, что при работе с асинхронными операциями код, который вы пишете, выполняется не по порядку, то есть не в том порядке, в котором он записан в файле.
Рассмотрим следующие примеры:
Не будет работать
return new Promise(function (resolve, reject) {
let result
fs.someAsyncOperation(function (data) {
result = data
})
resolve(result) // the promise will resolve immediately with undefined value
}
Будет работать
return new Promise(function (resolve, reject) {
fs.someAsyncOperation(function (result) {
resolve(result) // the promise will resolve after async operation is completed
})
}
Ваш код следует переделать, чтобы дождаться результатов асинхронной операции перед вызовом функции resolve
.
Для их устранения есть горячие клавиши:
Ctrl+M, Ctrl+M Collapse or expand the block you're currently in. Ctrl+M, Ctrl+O Collapse all blocks in the file Ctrl+M, Ctrl+L Expand all blocks in the file Ctrl+M, Ctrl+P Stop outlining mode. (Ctrl+M, Ctrl+O resumes)
Честно говоря, я не знаю ни одного подобного плагина. Однако с VSTO очень легко написать его самостоятельно.
Personally, I write a VS macro (Tools > Macro) to expand all regions on file open.
Это несколько ... неряшливо и может иметь побочные эффекты, но:
Инструменты -> Параметры -> Среда -> Шрифты и цвета -> Ключевое слово препроцессора Измените цвета переднего плана и фона на белый (или любой другой фон по умолчанию).
Однако вы не увидите другие ключевые слова препроцессора.