Я использую модуль Promise в Node.js для чтения файлов в каталоге, как показано ниже.
var promise = require("promise");
var fs = require("fs");
var readdir = promise.denodeify(fs.readdir);
var readDirPromise = readdir("/Users/sashi/Documents/javascript/telegram")
readDirPromise
Promise {
_75: 0,
_83: 1,
_18:
[ '.DS_Store',
'arica.txt',
'iquitos.txt',
'lapaz.txt',
'puntaarenas.txt',
'testingSashi_bot.js' ],
_38: null }
Что такое _75, _83, _18, _38? Будут ли они всегда одинаковыми числами? Как получить мой список файлов, я всегда могу сделать
console.log(readDirPromise._18)
Или цифры меняются в зависимости от ситуации?
Заранее спасибо:)
Edit:
Я немного поэкспериментировал. Похоже, _83 используется, чтобы показать, выполнено ли обещание или нет.
- _83: 0 (Обещание не выполнено)
- _83: 1 (Обещание выполнено и ошибок нет)
- _83: 2 (Обещание разрешено, но где-то есть ошибка)
См. Ниже.
function readJSON(filename){
return readFile(filename,'utf8').then(JSON.parse,console.log);
}
Когда обещание еще не выполнено.
readJSON("./Places/arica.txt")
Promise { _75: 0, _83: 0, _18: null, _38: null }
Если обещание выполнено, но есть ошибка.
Promise {
_75: 0,
_83: 2,
_18: SyntaxError: Unexpected token I in JSON at position 0
at parse (<anonymous>)
at tryCallOne (/Users/sashi/node_modules/promise/lib/core.js:37:12)
at /Users/sashi/node_modules/promise/lib/core.js:123:15
at flush (/Users/sashi/node_modules/asap/raw.js:50:29)
at process._tickCallback (internal/process/next_tick.js:172:11),
_38: null }
Если Обещание выполнено без ошибок.
Promise {
_75: 0,
_83: 1,
_18:
{ name: 'lapaz',
description: 'La Paz is the capital of Bolivia. It is one of my favorite cities because its crazy.' },
_38: null }