• Как вернуть Promise из нескольких последовательных асинхронных вызовов?

    @denisei
    В документации mongodb указано, что если не указывать коллбэк в MongoClient.connect, то нам автоматически возвращается Promise. Далее, collection.find({}) возвращает курсор, но, если обрабатывать курсор одним из методов и не указывать callback, то опять же можно сразу получить Promise. Вооружившись этим можно попробовать сделать так:
    MongoClient.connect('mongodb://127.0.0.1:27017/snmp')
    .then(db=>
    	db.collection('collection1').find({}).explain()
    	.then(explaination=>{
    			//делаем что-либо с результатами первого запроса
    			//например можно вернуть какие - либо данные:
    		return data;
    	})
    	.then(data=> //если в верхнем then мы вернули некие данные (data) - они передаются сюда
    		db.collection('collection2').find({}).explain()
    		.then(explaination=>{
    				//можно закрыть соединение
    				db.close();
    				//также делаем что-либо с результатами второго запроса
    				//можно скрестить результаты первого запроса (data) и (explaination) и вернуть результат
    				return result;
    		})
       )
    )
    Ответ написан
    Комментировать
  • Как собрать и установить модуль win32ole для Node.js?

    @denisei
    Модуль давно не обновлялся. У меня получилось его собрать только под node. v0.10.40
    Ответ написан